美文网首页
docker 里的容器的进程前台运行or后台运行

docker 里的容器的进程前台运行or后台运行

作者: 自律_成长 | 来源:发表于2018-09-07 17:54 被阅读0次

今天做redis单机版本的docker化安装,遇到一个很奇怪的问题:

用yaml文件启动容器后,pod一直在restart,最后直接crash掉了,看日志并没有报任何错误,启动脚本是自己写了一个shell,然后shell里调redis启动脚本。

各种修改尝试问题依然在,后来发现启动shell中加一段死循环pod就能正常running,初步怀疑是因为启动shell运行结束导致pod认为容器已经down掉,后来把redis设置成前台启动也能解决问题,断定问题出在进程上。

今天翻阅了<第一本Docker书>,书中描述:docker 容器默认会把容器内部第一个进程,也就是pid=1的程序作为docker容器是否正在运行的依据,如果docker 容器pid挂了,那么docker容器便会直接退出,也就是说Docker容器中必须有一个前台进程,否则认为容器已经挂掉,之前出现的问题应该是shell脚本已经执行完毕,而redis服务又设置成了后台运行。

解决方法:

1.最佳的解决方案是,将你要在容器里运行的程序以前台进程的形式运行,当然,如果你的容器需要同时启动多个进程,

那么也只需要,或者说只能将其中一个挂起到前台即可。

2.对于有一些你可能不知道怎么前台运行的程序,提供一个投机方案,你只需要在你启动的命令之后,

添加类似于 tail top 这种可以前台运行的程序,这里特别推荐 tail ,然后持续输出你的log文件。

相关文章

  • docker 里的容器的进程前台运行or后台运行

    今天做redis单机版本的docker化安装,遇到一个很奇怪的问题: 用yaml文件启动容器后,pod一直在res...

  • Docker-参数详解

    Docker参数详解。 -d:以守护进程方式运行(后台)。 -i:表示以“交互模式”运行容器 -t:表示容器启动后...

  • docker --init 与多进程容器

    目录 1、多进程的启动2、docker --init3、附录 容器运行需要一个前台进程来夯住容器,否则容器会被视为...

  • Docker Compose 命令

    前台运行 docker-compose up 后台运行 docker-compose up -d 启动 docke...

  • docker 常用命令总结

    我们运行docker容器的时候,使用了-d参数,把容器在后台运行后。 1.启动docker docker run ...

  • Docker - 基础命令

    查看正在运行的docker 容器 查看docker中所有的镜像 启动镜像 并且在后台进行运行 docker 运行镜...

  • Docker容器命令

    运行容器 docker run tomcat 可以直接运行tomcat,但是会强占命令框 后台新增运行容器 doc...

  • Docker-Nginx 容器部署前端项目

    Docker nginx 容器运行命令 命令参数 --name 容器名称-d 容器后台运行-p 映射端口,默认80...

  • 容器常用操作

    后台运行容器 -d参数 tip:加上-d参数后,docker ps看不到运行中的容器,状态直接退出了。docker...

  • docker 小记

    启动容器 容器后台运行 Ctrl + p + q 进入docker容器 docker exec -it 775c7...

网友评论

      本文标题:docker 里的容器的进程前台运行or后台运行

      本文链接:https://www.haomeiwen.com/subject/uvapvxtx.html