На практике запустить контейнер, который я делаю:
docker run a8asd8f9asdf0
Если это так, что делает:
docker start
делать?
В руководстве написано
Запустите один или несколько остановленных контейнеров.
На практике запустить контейнер, который я делаю:
docker run a8asd8f9asdf0
Если это так, что делает:
docker start
делать?
В руководстве написано
Запустите один или несколько остановленных контейнеров.
Это очень важный вопрос, и ответ очень простой, но фундаментальный:
docker run IMAGE_ID
а не docker run IMAGE_ID
docker run CONTAINER_ID
docker stop CONTAINER_ID
, вы можете перезапустить тот же контейнер с помощью команды docker start CONTAINER_ID
, и данные и настройки будут такими же.run
запускает изображениеstart
запускает контейнер. docker run
doc упоминает:
Команда
docker run
сначала создает загружаемый слой контейнера над указанным изображением, а затем запускает его с помощью указанной команды.То есть, запуск docker эквивалентен API
/containers/create
, а затем/containers/(id)/start
.
Вы не запускаете существующий контейнер, вы используете docker exec (начиная с docker 1.3).
Вы можете перезапустить завершенный контейнер.
Пояснение с примером:
Предположим, у вас есть изображение игры (iso) на вашем компьютере.
Когда вы run
(монтируете свой образ как виртуальный диск), создается виртуальный диск со всем содержимым игры на виртуальном диске, и автоматически запускается установочный файл игры. [Запуск вашего образа докера - создание контейнера и его запуск.]
Но когда вы stop
(подобно остановке Docker) его, виртуальный диск все еще существует, но останавливает все процессы. [Поскольку контейнер существует до тех пор, пока он не будет удален]
И когда вы start
(аналогично запуску Docker), с виртуального диска запускаются файлы игр. [запуск существующего контейнера]
В этом примере - образ игры - это ваш образ Docker, а виртуальный диск - ваш контейнер.
Если вы задаете этот вопрос, то базовая концепция изображений и слоев для создания этих изображений не ясна.
Сначала прочитайте ответы на эту ссылку в которой суммируются различия между слоями и изображениями
Как только вы получите эту концепцию, вы сможете лучше понять отличный, но высокий уровень ответа VonC выше.
daniele3004 ответ уже довольно хорош.
Просто быстрая и грязная формула для таких людей, как я, кто смешивает run
и start
время от времени:
docker run [...]
= docker pull [...]
+ docker start [...]