一、使用supervisor来管理


supervisor:进程管理工具,基于C/S架构。(其提供web接口给用户查询和 控制),它允许用户去监控和控制在类unix系统的进程。

  使用supervisor可以更好的控制、管理、重启我们希望运行的进程。

在这演示一下如何同时使用ssh和 apache 服务。(通过docker buid生成新镜像)

配置

1.首先创建一个dockerfile目录

dockerfile文件内容

wKiom1kBziSB4X1xAACsQtwmq1A950.png

supervisor配置文件内容

第一段supervsord配置软件本身,使用nodaemon参数来运行。nodaemon=true 如果是true,supervisord进程将在前台运行,默认为false,也就是后台以守护进程运行。

下面2段包含我们要控制的 2 个服务。每一段包含一个服务的目录和启动这个服务的命令

wKioL1kBzjHzNl9sAAAeIDL8CJ8935.png-wh_50

/docker/apache目录内容列表

使用方法

创建p_w_picpath(docker build)

wKioL1kBzj3wSHL_AAAPKsoEBrs657.png-wh_50

启动supervisor容器

wKiom1kBzkSBXhNYAAAVD7yXSF0727.png-wh_50

测试容器提供的web和ssh服务

二、docker compose项目

compose项目:源于之前的fig项目,使用python编写。

Docker compose项目主要用于编排部署基于docker的应用。本身与docker/swarm配合度很高。

docker compose属于一个“应用层”的服务。

dockerfile可以让用户管理一个单独的应用容器,而compose则允许用户在一个模板(yml格式)中定义一组相关联的应用容器(被称为一个项目)。docker-compose中服务与项目说明:

服务:即应用容器。

项目:由一组关联的应用容器组成的一个完整业务单元

安装docker-compose

给docker-compose执行权限,并将其移动到path的任意一路径下

wKioL1kBzljCB988AAAeS4wNCXo845.png

安装成功后,可以查看docker-compose 的版本和命令的用法

wKiom1kBzmKxwqD1AAAXzrHepYU153.png

docker-compose命令:

测试案例

下面,我们创建一个经典的 Web 项目:一个Haproxy,挂载三个 Web 容器。

docker-haproxy目录,作为项目工作目录,并在其中分别创建两个子目录:haproxy和web。

#mkdir  -p  /root/docker-haproxy/{haproxy,web}

在/root/docker-haproxy/目录下编写docker-compose.yml文件(compose的主模板文件)

wKiom1kBznKwujYWAABYxDK-F0c354.png-wh_50

在/root/docker-haproxy/haproxy目录下创建haproxy的主配置文件haproxy.cfg

wKiom1kBzoGRY2sdAABm9qrPZMo431.png-wh_50

在/root/docker-haproxy/web目录下存放web站点网页文件

wKioL1kBzo6Cpi_iAAAe-ogmw_8025.png-wh_50

运行compose项目:

在docker-haproxy目录下执行docker-compose up  -d来启动你的应用

wKiom1kBzp3iO25RAAAbFjziroM284.png-wh_50

查看容器启动情况

wKioL1kBzqrSURHkAACRsRWzyZc644.png-wh_50

测试

wKiom1kBzregpI-5AAApVbiWb2c590.png-wh_50

wKioL1kBzsLCsYVUAACGPmSLJA0586.png-wh_50