2016-06-10 6 views
44

В чем разница между командами docker run и docker create?Docker run vs create

Обычно я использую run, но иногда в документации я вижу create.

Докер-х --help говорит

create Create a new container 
run  Run a command in a new container 

Означает ли это, что run используется, когда необходимо передать команду в новый контейнер? Какова цель create?

ответ

47

От докер documentation

докера создать команду создает записываемый контейнер слой поверх указанного изображения и подготавливает его для выполнения указанной команды. Идентификатор контейнера затем печатается в STDOUT. Это похожее на докерный проход -d кроме контейнера никогда не запускается. Затем вы можете использовать команду запуска докера, чтобы запустить контейнер в любой момент.

Это полезно, когда вы хотите настроить контейнер конфигурацию впереди времени так, что он готов начать, когда вам это нужно. Создается исходный статус нового контейнера.

15
+0

U написал «Докер перспектива создает контейнер (такой же, как докер создать) и запускает его «. <--- круговое определение, и вы не установили разницу между exec и start, и то, что вы называете «запускает». (И когда вы говорите «запускает», если мы посмотрим на ваше определение запуска в прогон докеров, это означает создание и запуск, поэтому вы получите бесконечное число .. так что предположительно вы имеете в виду что-то меньшее, чем когда говорите «запускает его» .. но тогда вы должны отличать «запускает его» от exec и start, вы имеете в виду start и exec или просто запускаете). Возможно, -d означает, что нет exec. и без -d запускается и exec – barlop

30

Технически докер пробег = докер создать + Докер начать

0

Я новичок в докер и просто удосужился играть с ним;

Мое мнение, что докера запустить по существу делает следующее: (в порядке ..) докера создать, докера начать, докера присоединять, так как он сразу прикрепляется к активной оболочке после вас выполните команду 'run'.

-1

Docker run в основном для запуска команд в контейнере.

docker run -it <Container Name> /bin/bash 

Вышеупомянутое предназначено для создания терминала bash. И заставьте нас использовать команды bash в контейнере.

Docker create предназначен для создания контейнера из изображения Docker.

docker create -d /var/lib:/var/lib --name docker-ubuntu ubuntu 

выше, чтобы создать грузчик контейнер с именем «Докер-убунтом» с изображения «убунт»

+0

Вы можете выполнить 'docker run -it ', не делая затем/bin/bash. Например, рубиновый автозапуск выполнит исполняемый файл irb. Кроме того, вы можете выполнить run -d, это делается с помощью dockersamples/static-site, который не входит в систему. Поэтому я думаю, что это не делает exec, но он просто запускает его. – barlop