case 1:docker run -d -it image_id ehco "hello world "创建容器后,通过docker -ps -a 查看容器状态是Exited (0),且通过docker start container_id命令启动容器,容器总是处于“Exited (0)”的状态,无法进入容器执行其他操作。如下图:
case2:docker run -d -it image_id /bin/bash 创建容器后,容器状态为:Up,进入容器执行其他操作后,容器状态正常。执行docker start 命令去正常启动该容器的状态为“Up”
比较case1 和 case 2,执行docker run后发现容器的状态并不一致。
原因:
1. 在case1 中,docker run 命令是一个进程,echo 后进程结束,docker退出。容器运行的命令如果不是那些一直挂起的命令(比如运行top,tail),就是会自动退出
容器结束,可以使用[ctrl + P][ctrl + Q]退出而不终止容器运行
如下命令,会在指定容器中执行指定命令,[ctrl+D]退出后不会终止容器运行
docker exec -it [CONTAINER_NAME or CONTAINER_ID] /bin/bash