Поиск по сайту:
Тот, кто не смотрит вперед, оказывается позади (Д. Герберт).

Различие между Run vs Start vs Create в Docker

09.12.2019
Установить Docker 1.11 на Ubuntu 16.04 LTS x64

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

Этих терминов достаточно, чтобы запутать начинающего докера, потому что все три команды Docker кажутся похожими.

На самом деле, особенно трудно определить разницу между запуском и стартом Docker.

Разве запуск контейнера не совпадает с его стартом? На самом деле, нет.

Позвольте нам объяснить это вам.

 

Разница между Run, Start и Create в Docker

Вот что делают эти команды:

Команда Docker create создает новый новый контейнер из образа Docker. Тем не менее, он не запускается сразу.

Команда start Docker запустит любой остановленный контейнер. Если вы использовали команду docker create для создания контейнера, вы можете запустить его с помощью этой команды.

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

Давайте рассмотрим это на примерах, чтобы вам было понятнее.

Посмотрим на примеры

Убедитесь, что вы установили Docker, если хотите следовать примерам.

Допустим, вы загружаете образ Ubuntu из Docker Hub с помощью команды docker pull ubuntu.

Читать  Что такое Amazon Linux 2?

Вы можете увидеть все доступные образы Docker в вашей системе. У нас есть только Ubuntu в этом примере (чтобы избежать путаницы):

andreyex@destroyer:~$ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
ubuntu              latest              775349758637        5 weeks ago         64.2MB

 

Теперь создайте новый контейнер Docker с именем container-1 с помощью команды docker create :

andreyex@destroyer:~$ docker create --name container-1 ubuntu
2d9a8c190e6c9b3cbbc032a87762bfbc92f1dc0dd30abbe9bdb3ed7e74a6480f

 

Как вы можете видеть, команда создала новый контейнер. Если вы попытаетесь увидеть все запущенные container-1, вы не увидите контейнер, потому что, хотя он был создан, он никогда не запускался.

andreyex@destroyer:~$ docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES

 

Если вы проверите все контейнеры, независимо от того, запущены они или нет, вы увидите, что container-1 имеет статус Created:

andreyex@destroyer:~$ docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
2d9a8c190e6c        ubuntu              "/bin/bash"         18 seconds ago      Created                                 container-1

 

Теперь давайте используем команду docker run для создания и запуска контейнера с именем container-2:

andreyex@destroyer:~$ docker run -it -d --name container-2 ubuntu bash
13dc0f4226dc8d9d86e41d927c5616654d8263da2cc8c667aaa5b4dbd7f7e9b3

 

Вы можете видеть, что container-2 работает, так как он имеет статус Up:

andreyex@destroyer:~$ docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED              STATUS              PORTS               NAMES
13dc0f4226dc        ubuntu              "bash"              About a minute ago   Up About a minute                       container-2

 

Давайте остановим этот работающий контейнер:

andreyex@destroyer:~$ docker stop container-2
container-2
andreyex@destroyer:~$ docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
andreyex@destroyer:~$ docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                      PORTS               NAMES
13dc0f4226dc        ubuntu              "bash"              2 minutes ago       Exited (0) 28 seconds ago                       container-2
2d9a8c190e6c        ubuntu              "/bin/bash"         3 minutes ago       Created                                         container-1

 

Читать  Понимание прав доступа к файлам в Linux

Теперь, когда у нас есть остановленный контейнер, вы можете запустить его снова с помощью команды docker start:

andreyex@destroyer:~$ docker start container-2
container-2
andreyex@destroyer:~$ docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
13dc0f4226dc        ubuntu              "bash"              2 minutes ago       Up 2 seconds                            container-2

 

Но что происходит с container-1, который был создан с помощью команды docker create? Вы можете запустить этот контейнер с помощью команды docker start, а затем использовать docker exec для запуска чего-то определенного с ним.

Мы надеемся, что эта статья дала вам лучшее понимание run docker, start docker и команды docker create. Если у вас есть вопросы или предложения, пожалуйста, оставьте комментарий ниже.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (3 оценок, среднее: 5,00 из 5)
Загрузка...
Поделиться в соц. сетях:


0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

**ссылки nofollow

1 Комментарий
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
Антон

Спасибо большое автору, внесена ясность в данный вопрос!

Это может быть вам интересно


Рекомендуемое
Это история о том, как один инструмент для ведения блогов…

Спасибо!

Теперь редакторы в курсе.