怎样在一个 Docker 容器中运行多个进程 ?

[复制链接]
发表于 2025-12-30 14:08:10 | 显示全部楼层 |阅读模式

容器化的天下里,Docker 彻底改变了开辟职员构建、发布和运行应用步调的方式。Docker 容器封装了运行应用步调所需的全部依赖项,使其易于跨差别情况划一地摆设。然而,在单个 Docker 容器中管理多个进程大概具有寻衅性,这就是 Supervisor 发挥作用的地方。
什么是 Supervisor ?

Supervisor 是一个 client/server 体系,允许其用户监督和控制类 Unix 利用体系上的多个进程。特殊是
对于管理多个必要同时运行的复杂应用步调特殊有效。Supervisor 提供了一种强大而可靠的方式确保进程的启动、克制和重启。
怎样管理多进程 ?

Docker 容器被计划为运行单个进程。固然可以利用 systemd 或 init 等工具在容器中运行多个进程,但这违反了 Docker 的根本计划原则。别的,手动管理这些流程大概很贫困,而且轻易堕落。
一种常见方法是在 Docker 容器中运行一个类似 Supervisor 的进程管理器。Supervisor 作为看门狗,确保全部须要的进程都在运行,并在它们失败时重新启动它们。
怎样集成 Docker 和 Supervisor ?

将 Supervisor 与 Docker 集成很简单。你可以直接在 Docker 容器中安装 Supervisor,也可以创建一个单独的容器来运行 Supervisor。下面是一个怎样在 Docker 中利用 Supervisor 的根本步调。
(1) 创建 Supervisor 设置文件
界说 supervisord.conf 设置文件,指定要管理的进程。文件放在 Supervisor 可以在容器中访问的位置。
(2) 安装 Supervisor
如果你要创建一个单独的 Supervisor 容器,你必要将 Supervisor 作为 Dockerfile 的一部分来安装。您可以利用 apt 或 yum 之类的包管理器来安装 Supervisor 和任何依赖项。
(3) 启动 Supervisor
安装 Supervisor 之后,您可以手动启动它,也可以将其作为容器启动过程的一部分启动。Supervisor 将读取设置文件并开始监督指定的进程。
(4) 运行应用步调
末了,在 Docker 容器中启动应用步调。Supervisor 将确保全部须要的步调都在运行,并处剃头生的故障。
实践示例

(1) 克隆存储库到您的当地呆板
  1. git clone https://github.com/tecrahul/docker-supervisor.git
复制代码
(2) 切换到克隆的存储库目次
  1. cd docker-supervisor
复制代码
(3) 构建 Docker 镜像
  1. docker build -t docker-supervisor .
复制代码
(4) 运行 Docker 容器
  1. docker run -d -p 80:80 docker-supervisor
复制代码
如今,Docker 容器已经运行, Apache 和 PHP-FPM 的运行由 Supervisor 管理。您可以在欣赏器中访问 http://localhost 利用 Apache Web 提供的服务。
我的开源项目




  • course-tencent-cloud(酷瓜云讲堂 - gitee堆栈)
  • course-tencent-cloud(酷瓜云讲堂 - github堆栈)

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!qidao123.com:ToB企服之家,中国第一个企服评测及软件市场,开放入驻,技术点评得现金

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表