Docker之Compose服务编排
Compose是Docker的服务编排工具,主要用来构建基于Docker的复杂应用,Compose 通过一个配置文件来管理多个Docker容器,非常适合组合使用多个容器进行开发的场景。(进入官方)
常用命令
1. 安装
curl -L https://github.com/docker/compose/releases/download/1.8.1/docker-compose-
uname -s-
uname -m> /usr/local/bin/docker-compose
2. 编排(docker-compose.yml)
- version 在version 1里同时使用image和build是不允许的,version 2则可以
- image 指定镜像tag或者ID
- build 用来指定一个包含Dockerfile文件的路径
- command 用来覆盖缺省命令
- links 用于链接另一容器服务(links:- db),如需要使用到另一容器的mysql服务,可以给出服务名和别名(links:- db:mysql);也可以仅给出服务名,这样别名将和服务名相同(links:- redis)
docker会将links的规定内容直接映射到/etc/hosts文件中去,直接添加解析
- posts 用于暴露端口,同
docker run -p
- expose expose提供container之间的端口访问,不会暴露给主机使用,同
docker run --expose
- volumes 挂载数据卷,同
docker run -v
- volumes_from 挂载数据卷容器,挂载是容器,同
docker run --volumes-from
- environment 添加环境变量,同
docker run -e
- depends_on 用于指定服务依赖,一般是mysql、redis等
- external_links 链接搭配docker-compose.yml文件或者Compose之外定义的服务,通常是提供共享或公共服务
- extra_hosts 添加主机名映射
示例1
build:
context: .
args:
buildno: 1
password: secret
build:
context: .
args:
- buildno=1
- password=secret
示例2
version: '2'
services:
web:
image: wordpress:latest
links:
- db
ports:
- "8002:80"
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_PASSWORD: 123456
db:
image: mysql:latest
environment:
- MYSQL_ROOT_PASSWORD=123456
3. 操作指令
$ docker-compose up -d #创建、启动应用,-d守护进程
$ docker-compose stop
$ docker-compose build
$ docker-compose kill
$ docker-compose logs #查看日志的输出