编配(orchestration)是一个没有严格定义的概念。大概描述了自动配置、协做和管理服务的过程。在Docker世界里,编配用来描述一组实践过程,这个过程会管理运行在多个Docker容器里的应用,而这些Docker容器有可能运行在多个宿主机上。python
这里记录使用Fig进行简单的容器编配。Fig是由Orchard团队开发的Python开源工具,2014年被Docker公司收购。linux
使用Fig,能够用一个YAML文件定义一组要启动的容器,以及容器运行的属性。Fig称这些容器为服务。git
一、Linux上安装Figgithub
sudo bash -c "curl -L https://github.com/docker/fig/release/download/0.5.2/linux > /usr/local/bin/fig chmod +x /usr/local/bin/fig
查看fig是否安装成功:web
fig --version
二、示例应用redis
演示Fig的例子使用了两个容器:docker
构建应用容器:数据库
mkdir figapp cd figapp touch Dockerfile
下载做者编辑好的app.py文件和requirements.txt文件(该文件保存应用程序的依赖关系)到figapp目录。flask
FROM python:2.7 MAINTAINER James Turnbull <james@example.com> ENV REFRESHED_AT 2014-08-01 ADD . /figapp WORKDIR /figapp RUN pip install -r requirements.txt
这个Dockerfile基于python:2.7镜像构建。首先添加app.py和requirements.txt到镜像中的/figapp目录。以后将工做目录设置为/figapp,并执行pip命令来安装应用的依赖:flask和redis。bash
构建镜像
docker build -t "ivan/figapp" .
三、编写fig.yml文件
使用Fig,能够(以Docker容器的形式)定义一组服务,并启动这些服务。Fig还能够指定这些服务运行时的属性,它们和docker run命令须要的参数相似。将全部与服务有关的属性都定义在一个YAML文件里,以后执行fig up命令,Fig就会启动这些容器使用指定的参数来执行,并将全部的日志输出合并到一块儿。
cd figapp touch fig.yml
web: image: jamtur01/figapp command: python app.py ports: - "5000:5000" volumes: - .:/figapp links: - redis redis: image: redis
fig.yml文件定义了两个服务:web和redis。image指定了要运行的镜像,也能够使用build命令并提供一个Dockerfile让Fig构建一个镜像:
web: build: /home/james/figapp
使用command指定服务启动时要执行的命令。使用ports和volumes指定了服务要映射到的端口和卷。使用links指定服务要链接的其余服务。
四、运行Fig
在fig.yml文件所在的目录执行fig up命令运行服务。也能够加入-d参数使其在后台运行。
五、使用Fig
fig ps 命令列出本地fig.yml文件里定义的正在运行的全部服务。
fig logs命令查看服务的日志时间。
fig stop命令能够中止正在运行的服务。
fig rm删除服务。
《第一本Docker书》中关于Consul的介绍由于没有测试环境略过。