Docker启动镜像就自动退出问题及解决

2023-12-07 0 231
目录
  • Docker启动镜像就自动退出问题
    • 一、问题引入
    • 二、原因
    • 三、解决方案
  • 记录docker启动镜像自动关闭的问题
    • 问题复现
    • 解决办法(我是直接用的第二种)
  • 总结

    Docker启动镜像就自动退出问题

    一、问题引入

    根据镜像启动容器,执行命令如下:docker run –name mycentos -d centos,通过docker ps查看正在运行中容器,缺找不到mycentos容器。

    再次通过docker ps -a查看发现,mycentos容器已经处于停止状态了。

    二、原因

    Docker容器后台运行,就必须有一个前台进程.

    容器运行的命令如果不是那些一直挂起的命令(eg. 运行top,tail等),就是会自动退出

    这个是 docker 的机制问题,比如我们的 web 容器,以 nginx 和 fpm 为例,

    正常情况下,启动服务只需启动相应的 service 即可,例如:service nginx start && service php5-fpm start,但是,这样做, nginx 和 fpm 均以后台进程模式运行,就会导致 docker 前台没有正在运行的应用,

    so,容器会立即自杀,因为他觉得没事可做了。

    三、解决方案

    3.1 将要运行的程序以前台进程的形式运行

    将要运行的程序以前台进程的形式运行,如果容器需要同时启动多个进程,那么也只需要将其中一个挂起到前台即可。

    比如上面所说的 web 容器,只需要将启动指令修改为:

    service php5-fpm start && nginx -g \”daemon off;\”

    3.2 投机方案

    对于可能不知道怎么前台运行的程序,提供一个投机方案,只需要在启动的命令之后,添加类似于 tail top 这种可以前台运行的程序,这里推荐tail ,然后持续输出log文件即可。

    service nginx start && service php5-fpm start && tail -f /var/log/nginx/error.log

    再以上面所说的 web 容器为例,可以写成:

    service nginx start && service php5-fpm start && tail -f /var/log/nginx/error.log

    3.3 以centos/ubuntu为例

    同3.1,在启动centos/ubuntu容器时,可以做一个手脚:做一个死循环,持续输出任意,这样容器不会认为没事可做而自杀了。

    docker run -d centos /bin/sh -c \”while true; do echo hello world; sleep 1; done\”

    3.4 docker run 直接进入容器内

    docker  run  -it  image_id  /bin/bash 或
    docker  run  -it  image_id  /bin/sh

    记录docker启动镜像自动关闭的问题

    问题复现

    今天装dockerui-portainer图形化时,安装完镜像,启动之后总是自动退出。

    Docker启动镜像就自动退出问题及解决

    解决办法(我是直接用的第二种)

    在启动脚本里面增加一个执行进程:

    tail -f /dev/null

    如果是别人的镜像你不想修改,可以用-dit参数

    docker run -dit –name ubuntu2 ubuntu

    docker run -d –name ubuntu ubuntu /bin/bash -c \”tail -f /dev/null\”

    总结

    以上为个人经验,希望能给大家一个参考,也希望大家多多支持悠久资源网。

    收藏 (0) 打赏

    感谢您的支持,我会继续努力的!

    打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
    点赞 (0)

    悠久资源 Linux服务器 Docker启动镜像就自动退出问题及解决 https://www.u-9.cn/server/linux/115155.html

    常见问题

    相关文章

    发表评论
    暂无评论
    官方客服团队

    为您解决烦忧 - 24小时在线 专业服务