Docker совет №32: Разница между create, start и run

Jul 26, 2018 07:02 · 205 words · 1 minute read docker

Команды docker create, docker start и docker run выглядят одинаковыми по смыслу, но на самом деле они выполняют совершенно различные роли. Давайте разберемся, чем же отличаются данные команды!

Вызов docker create добавляет доступный для записи слой (writeable layer) ко всем уже имеющимся слоям выбранного вами docker-образа, и, таким образом, подготавливает контейнер для запуска команды, которую вы определили ранее в инструкции CMD (или вводите при запуске). В результате выполнения docker create на экран будет выведен идентификатор созданного docker-контейнера, но сам контейнер запущен не будет.

Команда docker start используется для запуска остановленных docker-контейнеров, в том числе и “свежих”, только что созданных контейнеров с помощью предыдущей команды docker create.

Самая используемая и хорошо известная команда - docker run - на самом деле является комбинацией двух предыдущих команд - docker create и docker start. Как несложно догадаться, с помощью docker run можно создать новый docker-контейнер из образа и запустить его.

К слову, я уже несколько лет использую docker для самых разных задач и сервисов, и у меня ни разу не возникала необходимость создать контейнер (через docker create), но не запускать его - я всегда пользовался именно docker run.

Приходилось ли вам пользоваться комбинацией docker create + docker start вместо docker run, и если да, то в каких именно случаях?

tweet Share