編配(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的介紹由於沒有測試環境略過。