Докер запустить против создания


в чем разница между docker run и docker create команды?

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

настройки по --help говорит

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

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

6 58

6 ответов:

от Docker документация

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

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

технически, docker run = docker create + docker start

Я новичок в docker и только что собрался играть с ним;

мое мнение заключается в том, что docker run по сути делает следующее: (в порядке..)docker create,docker start,docker attach, так как он сразу же присоединяется к активной оболочке после того, как вы сделаете 'run'.

другие ответы были покрыты этим, но я думал, что покажу эквивалентные командные строки оболочки, потому что это действительно ясно:

$ docker run myimage

это то же самое, что

$ docker start -a $(docker create myimage)

здесь docker create используется для создания контейнера из именованного изображения и выводит созданный контейнер с ID и docker start используется для запуска контейнера с этим идентификатором. Элемент -a опция заставляет терминал присоединяться так, чтобы контейнер выполнялся на переднем плане, который является поведение по умолчанию docker run.

контейнер, который был создан, но не начал есть Created статус; это можно увидеть с docker container ls -a.

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

выше стоит создать докер контейнер с именем " docker-ubuntu "из образа"ubuntu"