В чем разница между docker run
и docker create
команды?
Обычно я использую, run
но иногда в документации вижу create
.
Докеры --help
говорят
create Create a new container
run Run a command in a new container
Означает ли это, что run
он используется, когда нам нужно передать команду новому контейнеру? В чем тогда цель create
?
Технически
docker run
=docker create
+docker start
.источник
docker run
=docker create
+docker start
+docker attach
. Безattach
него запущенный контейнер работает в фоновом режимеdocker create
Команда создает из образа записываемый контейнер и подготавливает его к запуску .docker run
команда создает контейнер (такой же, какdocker create
) и запускает его .источник
В других ответах это описано, но я подумал, что покажу эквивалентные командные строки оболочки, потому что это действительно ясно:
такой же как
Здесь
docker create
используется для создания контейнера из именованного изображения и вывода созданного идентификатора контейнера, а такжеdocker start
для запуска контейнера с этим идентификатором. Эта-a
опция заставляет терминал подключаться, чтобы контейнер работал на переднем плане, что является поведением по умолчаниюdocker run
.Контейнер, который был создан, но никогда не запускался, будет иметь
Created
статус; это можно увидеть с помощьюdocker container ls -a
.источник
Я новичок в докере и только что начал играть с ним;
Я считаю, что docker run по существу выполняет следующее: (в порядке…) docker create , docker start , docker attach , поскольку он сразу же подключается к активной оболочке после того, как вы выполните команду «run» .
источник
Docker run в основном предназначен для запуска команд в контейнере.
Вышеупомянутое предназначено для создания терминала bash. И заставьте нас использовать команды bash в контейнере.
Docker create - это создать контейнер из образа Docker.
Сказанное выше предназначено для создания докера контейнера с именем «docker-ubuntu» из образа «ubuntu»
источник
docker run -it <Container name>
без выполнения / bin / bash. Например, рубиновый автоматически запустит исполняемый файл irb. Кроме того, вы можете выполнить команду run -d, это делается с помощью dockersamples / static-site, который не входит в систему. Поэтому я думаю, что он не выполняет exec, а просто запускает его.