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