docker创建容器后自动关闭问题
docker run -d 后容器自动关闭
问题描述:
在创建docker 容器时,使用docker run -d后台运行后,
使用docker ps 的时候发现这个容器显示不到,也找不到id
问题原因:
docker run -d ....
是在后台运行容器,由于docker 辨别到没有前台操作,只有后台操作,运行之后会自动关闭容器。所以会导致docker ps 命令无法找到容器以及id
该问题涉及到docker的机制问题
- docker容器运行必须有一个前台进程, 如果没有前台进程执行,容器认为空闲,就会自行退出。
- 容器运行的命令如果不是那些一直挂起的命令( 运行top,tail、循环等),就是会自动退出
解决方式一:
添加-it 参数 交互运行
添加-d 参数 后台运行
eg: docker run -dit .....
这样就能启动一个一直停留在后台运行的容器了
解决方式二:
找到外部挂载卷中的redis.conf文件
添加daemonize no
该选项让redis成为在后台运行的守护进程,而docker容器必须要有一个前台进程才能留存否则容器会自动退出
进入容器的方法:
使用exec,不要使用attach命令
attach命令就是使用现有终端,如果你要退出容器操作,那么bash结束,容器也就退出了
shell>docker exec -it <container_id> /bin/bash //新建一个bash

浙公网安备 33010602011771号