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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix