起因
今天在使用Docker的时候,由于需要在docker容器里面使用几个依次的命令,分别需要启动gunicorn
以及nginx
,所以一开始直接使用了交互式的dockerrun
命令:
sudo docker run -p 443:443 --name name -i -t image /bin/bash
结果发现当在容器内运行之后退出导致容器直接关机了。
处理过程
由于容器一开始一不小心关机了,我尝试直接使用docker start
和docker attach
重新进入容器,再运行命令。
这样的方式一开始可以在交互的时候容器可以作用,但当我exit
之后就不能再使用了,容器也会自动关机。
最终方案
最后发现不使用attach
而是使用 exec
来进入容器的交互,这样就可以加入-t的参数,使得在退出终端之后依然可以持续的运行容器。
docker exec -i -t container /bin/bash