Docker 提供一个容器编排工具 ------Docker Compose, 它允许用户在一个模板 (YAML 格式) 中定义一组相关联的应用容器, 这组容器会根据配置模板中的 "--link" 等参数
对启动的优先级自动排序, 简单执行一条 "docker-compose up", 就可以把同一个服务中的多个容器一次创建和启动.
安装 docker-compose:
- 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" 选项指定配置文件.
下面通过安装 redmine 来说明
将 docker run 创建容器的指令改造为 Docker Compose 的配置文件
postgresql 容器创建和启动的命令为:
- [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 容器创建和启动的命令为:
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 配置文件内容如下:
- 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
来源: https://www.cnblogs.com/Template/p/9344656.html