Dockerfile优化——supervisor服务

一、理解supervisor(supervisor服务不仅在容器中可用,在宿主机中也适用)

1、Dockerfile中的CMD可以指定启动容器后执行的第一个命令,但是当有多个服务进程需要启动的时候,就可以使用supervisor来管理容器中的服务。

2、supervisor的作用:可以管理多个服务,当服务挂掉的时候能自动帮你监控自动并重启这些服务(下例中supervisor服务管理了容器中的nginx和php两个服务)。

3、使用supervisor

(1)在容器中yum安装supervisor(需要epel源)

(2)supervisor的配置文件位置

    主配置文件:

 

     子配置文件:

 

 (3)编辑supervisor的配置文件内容(子配置文件)

 

 (4)启动supervisor服务

 

 (5)查看状态

 

 (6)supervisor的其他管理命令

 

 

 (7)使supervisor的启动命令可以hang住

 

 

 

二、Dockerfile + supervisor原理

一般的Dockerfile文件中,用CMD定义一个命令,来让容器启动后执行第一个命令用来启动容器中的服务(例如nginx等),但是当容器需要启动多个服务(例如nginx和PHP两个服务)的时候,就不太好了,这个时候,可以在启动容器的时候直接执行supervisor服务的启动命令来开启动supervisor服务,然后让supervisor服务来帮我们启动其他的一系列服务即可。

 

三、Dockerfile + supervisor实践(下例中,用Dockerfile制作一个包含nginx和php服务的docker容器镜像,并且启动容器时可以自动启动nginx和php两个服务)

 

 

 

 

注意:此处需要确保supervisor服务的启动命令是一个可以夯住的命令,这样才能保证docker容器一直运行不会退出。

 

posted @   映辉  阅读(1498)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示