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

本文参考:http://t.csdn.cn/PH4rE

posted @   joudys  阅读(1151)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示