我使用以下命令从映像启动docker容器:
$ docker run -d myimage /bin/bash -c "mycommand"
当"mycommand"
完成后,容器停止(我想这已停止),但它并没有被删除,因为我可以用这个命令来查看它:
$ docker ps -a
有什么办法可以restart
使用相同的参数将此容器保持由生成的数据mycommand
?
Answers:
是的,当初始命令完成执行后,容器将停止。
您可以使用以下方法启动已停止的容器:
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
显示所有容器(正在运行的容器和已停止的容器),因此这就是您未看到列出的已停止容器的原因。
其次,您可以轻松启动已停止的容器运行:
$ docker start container_name
启动容器后,可以通过以下方式运行命令:
$ docker exec -it container_name bash -c "mycommand"
您在容器中创建的内容将一直存在于容器中。如果即使删除了容器也要保留数据,则可以使用卷。