Я запускаю док-контейнер из образа с помощью следующей команды:
$ docker run -d myimage /bin/bash -c "mycommand"
По "mycommand"
завершении контейнер останавливается (я полагаю, он остановлен), но не удаляется, потому что я могу увидеть его с помощью этой команды:
$ docker ps -a
Есть ли способ к restart
этому контейнеру с такими же параметрами и сохранить данные, сгенерированные mycommand
?
Ответы:
Да, когда начальная команда завершает выполнение, контейнер останавливается.
Вы можете запустить остановленный контейнер, используя:
docker start container_name
Если вы хотите увидеть вывод своей команды, вам следует добавить
-ai
параметры:docker start -ai container_name
PS. есть
docker restart container_name
но, который используется для перезапуска работающего контейнера - я считаю, что это не ваш случай.источник
docker exec -it container_name bash
. Когда я запустил команду из контейнера, я смог понять, почему первоначальная реализация моего скрипта не удалась, и исправил ее.start
сsleep
? Я не могу добраться до точки, где я могу бегатьexec
Во-первых,
$ docker ps -a
показывает все контейнеры (запущенные и остановленные), поэтому вы не видите в списке остановленный контейнер.Во-вторых, вы можете легко запустить остановленный контейнер:
После запуска контейнера вы можете запустить свою команду:
Материал, который вы создаете в своем контейнере, останется внутри вашего контейнера, пока он существует. Если вы хотите сохранить данные, даже если ваш контейнер удален, вы можете использовать том .
источник
Должен быть
источник
restart
на уже работающий контейнер