组合是一个用于定义和运行多容器码头工人应用程序的工具。使用组合,您可以使用YAML文件来配置应用程序的服务,然后,使用单个命令,您可以从配置中创建并启动所有服务。
组成适用于所有环境:生产,登台,开发,测试以及CI工作流程。
使用组合基本上是一个三步过程:
-
<李>在Dockerfile中定义您的应用程序环境,以便可以在任何地方进行再生产。李>
<李>定义构成应用程序的服务,docker-compose。yml以便它们可以在隔离环境中一起运行。李>
<李>运行docker-compose和组合开始并运行整个应用程序。李>
一个docker-compose。yml格式示例如下::
版本:“3” 服务: 网络: 构建:。 港口: ——“5000:5000” 卷: -:/代码 - logvolume01:/var/log 链接: ——复述, 复述: 图片:复述, 卷: logvolume01: {}
组成具有管理应用程序整个生命周期的命令:
-
<李>启动,停止和重建服务李>
<李>查看正在运行的服务的状态李>
<李>流式传输运行服务的日志输出李>
<李>在服务上运行一次性命令李>
<强> 2.1二进制下载安装强>
root@docker01: ~ # sudo curl - l“https://github.com/docker/compose/releases/download/1.22.0/docker-compose- (uname - s) -美元(uname - m)”- o/usr/local/bin/docker-compose root@docker01: ~ # sudo chmod + x/usr/local/bin/docker-compose
<强> 2.2 pip安装(推荐)强>
root@docker01: ~ # apt-get - y安装python root@docker01: ~ # curl https://bootstrap.pypa.io/get-pip。py - o get-pip.py python get-pip root@docker01: ~ #。py #安装皮普 root@docker01: ~ # pip安装docker-compose #安装码头工人组成 root@docker01: ~ # # docker-compose版本验证安装
<强> 3.1构建应用程序强>
root@docker01: ~ # mkdir composetest #创建码头工人组成目录 root@docker01: ~ # cd composetest/root@docker01: ~/composetest # vi app.py
提示:使用Python构建一个简单应用,具体应用内容参考官方示例即可。
https://docs.docker.com/compose/gettingstarted/step-1-setup
<强> 3.2创建Dockerfile 强>
root@docker01: ~/composetest # vi Dockerfile #使用Dockerfile构建镜像 从python 3.4高山 运行mkdir/root/.皮普#创建脉冲源配置目录 添加皮普。参看/root/.pip/pip.参看#将国内脉冲源添加至需要构建的镜像中 添加。/代码 WORKDIR/代码 运行pip安装- r的要求。txt #根据文件列表使用脉冲安装 CMD (“python”、“app.py”)
提示:以上Dockerfile相关命令参考《004.码头工人镜像管理》。
root@docker01: ~/composetest # vi的要求。txt #创建安装软件列表文件 瓶 复述, root@docker01: ~/composetest # vi皮普。参看#创建基于国内脉冲源的文件 (全球) index-url=https://mirrors.aliyun.com/pypi/simple/(安装) 可信主机=mirrors.aliyun.com
Dockerfile解释:
-
<李>从Python 3.4映像开始构建映像。李>
<李>创建pip配置目录。李>
<李>将国内脉冲源配置文件添加到/根/.pip/映像中的路径中。李>
<李>将当前目录添加到/代码映像中的路径中。李>
<李>将工作目录设置为/代码。李>
<李>安装Python相关包。李>
<李>将容器的默认命令设置为python app.py。李>
<强> 3.3使用码头工人组成构建服务强>
root@docker01: ~/composetest # vi docker-compose.yml 版本:“3” 服务: 网络: 构建:。 港口: ——“5000:5000” 复述: 图片:“复述:高山”
<强>码头工人组成解释:强>
此写文件定义了两个服务,web和复述。
web服务:
-
<李>使用从Dockerfile当前目录中构建的图像。李>
<李>将容器上的公开端口5000转发到主机上的端口5000。即使用瓶Web服务器的默认端口5000。