编排
编排(orchestration),指自动配置、协作和管理服务的过程,在 Docker 中,编排用来描述一组实践过程,这个过程会管理运行在多个 Docker 里的应用,这些 Docker 容器也可能运行在不同的宿主机上。
关于 Docker Compose
本文主要介绍 Docker 编排工具 Docker Compose ,由 Python 编写。使用 Docker Compose ,可以用一个 YAML 文件定义一组要启动的容器,以及容器运行时的属性。Docker Compose 称这些容器为“服务”:
容器通过某些方法并制定一些运行时的属性来和其他容器产生交互。
安装 Docker Compose
Docker Compose 的安装,官方文档非常详细:https://docs.docker.com/compose/install/
Docker Compose 目前可以安装在 Linux、Windows 和 OS X上。可以从 GIthub 直接下载可执行安装包,也可以通过 pip 安装 pip install docker-compose
, 这里采用前者:
- 从 Github 下载 docker-compose 可执行程序并到 /usr/local/bin 目录中,并赋予可执行权限。
# curl -L "https://github.com/docker/compose/releases/download/1.8.1/docker-compose-$(uname -s)-$(uname -m)" > /usr/local/bin/docker-compose
# chmod +x /usr/local/bin/docker-compose
- 测试 Docker Compose 是否工作
docker-compose -v
docker-compose version 1.8.1, build 878cff1
Docker Compose 应用示例
这里通过一个 Python Flask 应用来演示 Docker Compose 的使用,需要用到两个容器:
- 应用容器:运行 Python 示例程序
- Redis容器:运行 Redis 数据库
1.创建项目目录
mkdir composeapp
cd composeapp
2.创建 Python Flask 应用 app.py
from flask import Flask
from redis import Redis
app = Flask(__name__)
redis = Redis(host='redis', port=6379)
@app.route('/')
def hello():
redis.incr('hits')
return 'Hello World! I have been seen %s times.' % redis.get('hits')
if __name__ == "__main__":
app.run(host=