2016-09-23 11 views
13

я запускаю грузчик контейнер из образа с помощью следующей команды:Как перезапустить приостановленный Docker контейнер

$ docker run -d myimage /bin/bash -c "mycommand" 

Когда "mycommand" закончена, контейнер останавливается (я полагаю, что это не работает), но это не так удален, потому что я могу видеть его с помощью этой команды:

$ docker ps -a 

есть ли способ restart этот контейнер с теми же параметрами и сохранить данные, сгенерированные mycommand?

+0

Подходит ли вам «объем» или «установка каталога хоста»? Как и упомянутый документ: https://docs.docker.com/engine/tutorials/dockervolumes/ –

ответ

14

Да, когда начальная команда завершает выполнение, контейнер останавливается.

Вы можете начать остановленный контейнер с помощью:

docker start container_name

Если вы хотите увидеть на выходе вашей команды, то вы должны добавить -ai опции:

docker start -ai container_name

PS. есть docker restart container_name, но это используется для перезапуска запущенного контейнера - я считаю, что это не ваш случай.

1

Во-первых, $ docker ps -a показывает все контейнеры (те, которые работают, и остановленные), поэтому вы видите, что вы остановили свой контейнер.

Во-вторых, вы можете легко начать остановленном контейнера по:

$ docker start container_name 

После запуска контейнер, вы можете запустить команду:

$ docker exec -it container_name bash -c "mycommand" 

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

Смежные вопросы