前言:我们都知道docker的好处,总而言之就是多快好省。那我们要能够玩转docker就得知道配合docker使用的两种工具-------Supervisor和Compose.我来分别介绍这两种工具和如何使用。
Supervisor:
使用进程管理工具 supervisor 来管理容器中的多个进程。使用 Supervisor 可以更好的控制、管理、重启我们希望运行的进程。它是c/s系统。
演示:
在这里我们演示一下如何同时使用 ssh 和 apache 服务。
首先创建一个 Dockerfile,内容和各部分的解释如下。
创建一个dockerfile的目录
dockerfile文件内容:
supervisor 配置文件内容:
第一段 supervsord 配置软件本身,使用 nodaemon 参数来运行。nodaemon=true 如果是true,supervisord进程将在前台运行,默认为false,也就是后台以守护进程运行。
下面2段包含我们要控制的 2 个服务。每一段包含一个服务的目录和启动这个服务的命令
/docker/apache目录内容列表!
使用方法
创建 image
# docker build -t centos:supervisord
创建完镜像(image)后,我们可以是用docker images命令查看已经创建好的镜像。
我们利用这个image来启动supervisor容器:
测试:访问容器提供的web和ssh服务
注意:这里我们用到的是dockerfile文件来制作镜像的,当然我们还可以用docker commit命令来创建镜像。两者是有区别的。前者直接在dockerfile文件中完成镜像制作,这样也方便后期的更改添加新功能,而使用docker commit创建完成后,再在容器里配置服务,缺点是不利于随时添加新功能(添加信功能后还需要重新生成镜像),同时也不利于别人来识别这个镜像里的功能。
二:compose:编排部署基于docker的应用
使用:
安装Docker-compose,我们需要先安装pip
使用wget下载:wget https://bootstrap.pypa.io/get-pip.py
安装:
1.pip install docker-compose
2.ln -s /usr/bin/docker-compose /usr/local/bin/
3.安装完成后就可以使用dockercompose命令了。
我们使用compose工具实验思路:
首先,使用Dockerfile或docker commit来定义你的应用环境
第二步,用一个docker-compose.yml来定义你的应用,他们可以在下个互隔离的容器中组成你的应用。
第三步,执行docker-composeup -d来启动你的应用,它会根据docker-compose.yml的设置来pull/run相关的容器。
我们用这个图来表示这个项目的工作目录结构:
Docker-haproxy就是一个项目的工作目录
这个目录下创建两个子目录,就是我们需要的两个应用目录。
再docker-haproxy下我们还需要有一个模板文件docker-compose.yml,它可以创建隔离的容器。
最后使用docker-compose up -d 来启动应用。
注意:在这些配置文件中,我们需要把要用到的光盘镜像准备好。