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 @ 2023-03-20 14:42  joudys  阅读(1432)  评论(0)    收藏  举报