Docker提供一个容器编排工具------》Docker Compose,它容许用户在一个模板(YAML格式)中定义一组相关联的应用容器,这组容器会根据配置模板中的"--link"等参数git
对启动的优先级自动排序,简单执行一条"docker-compose up",就能够把同一个服务中的多个容器一次建立和启动。github
安装docker-compose:sql
curl -L https://github.com/docker/compose/release/download/1.6.0/docker-compose-`uname -s`-`uname -r` > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
使用Docker Compose管理多个容器,首先须要把容器写到它的配置文件中,默认配置文件名为docker-compose.yml,咱们能够经过“-f”选项指定配置文件。docker
下面经过安装redmine来讲明curl
将docker run建立容器的指令改造为Docker Compose的配置文件工具
postgresql容器建立和启动的命令为:post
[root@localhost ~]# docker run --name postgresql-redmine -d \ > --env 'DB_NAME=redmine_production' \ > --env 'DB_USER=redmine' \ > --env 'DB_PASS=password' \ > sameersbn/postgresql:9.4-12
它使用sameersbn/postgresql:9.4-12镜像建立了一个名字为postgresql-redmine的容器,并配置了三个环境变量。转换为Docker Compose配置文件内容以下:网站
postgresql: image: sameersbn/postgresql:9.4-12 environment: - DB_NAME=readmine_production - DB_USER=redmine - DB_PASS=password
redmine容器建立和启动的命令为:url
docker run --name redmine -d --link postgresql-redmine:postgresql --publish 10083:80 --env 'REDMINE_PORT=10083' sameersbn/redmine:3.2.0-4
它使用 sameersbn/redmine:3.2.0-4镜像建立了一个名字为redmine的容器,转换为Docker Compose配置文件内容以下:spa
redmine: image: sameersbn/redmine:3.2.0-4 links: - postgresql:postgresql ports: - "10083:80" environment: - REDMINE_PORT=10083
建立配置文件~/redmine/docker-compose.yml,合并内容以下:
postgresql: image: sameersbn/postgresql:9.4-12 environment: - DB_NAME=readmine_production - DB_USER=redmine - DB_PASS=password redmine: image: sameersbn/redmine:3.2.0-4 links: - postgresql:postgresql ports: - "10083:80" environment: - REDMINE_PORT=10083
执行新容器组的建立和启动:
docker-compose up -d
最后,经过http://ip10083就能够访问网站。
后续启动和中止就变得很是简单了:
中止命令:
docker-compose stop
启动命令:
docker-compose start