详解Docker之Compose服务编排

2020-06-17 06:53:28易采站长站整理

Stopping wptest_db_1...

重新启动服务:


docker-compose restart

docker-compose.yml参考

每个docker-compose.yml必须定义image或者build中的一个,其它的是可选的。

image

指定镜像tag或者ID。示例:


image: redis
image: ubuntu:14.04
image: tutum/influxdb
image: example-registry.com:4000/postgresql
image: a4bc65fd

注意,在

version 1
里同时使用
image
build
是不允许的,
version 2
则可以,如果同时指定了两者,会将
build
出来的镜像打上名为image标签。

build

用来指定一个包含

Dockerfile
文件的路径。一般是当前目录
.
。Fig将build并生成一个随机命名的镜像。

注意,在

version 1
bulid
仅支持值为字符串。
version 2
里支持对象格式。


build: ./dir

build:
context: ./dir
dockerfile: Dockerfile-alternate
args:
buildno: 1

context
为路径,
dockerfile
为需要替换默认
docker-compose
的文件名,
args
为构建(build)过程中的环境变量,用于替换Dockerfile里定义的
ARG
参数,容器中不可用。示例:

Dockerfile:


ARG buildno
ARG password

RUN echo "Build number: $buildno"
RUN script-requiring-password.sh "$password"

docker-compose.yml:


build:
context: .
args:
buildno: 1
password: secret

build:
context: .
args:
- buildno=1
- password=secret

command

用来覆盖缺省命令。示例:


command: bundle exec thin -p 3000

command也支持数组形式:


command: [bundle, exec, thin, -p, 3000]

links

用于链接另一容器服务,如需要使用到另一容器的mysql服务。可以给出服务名和别名;也可以仅给出服务名,这样别名将和服务名相同。同docker run –link。示例: