一、简介
Compose是用于定义和运行多容器Docker应用程序的工具。
使用compose,可以使用yaml文件配置应用程序的服务。
然后,通过一个命令,可以从配置中创建和启动所有服务。
二、使用
使用compose基本上是一个三步过程:
1. 用dockerfile,或者镜像定义应用程序的环境,以便在任何地方复制。
2. 在docker-compose.yml中定义组成应用程序的服务,以便它们可以在单独的环境中一起运行。
3. 运行docker compose up启动并运行整个应用程序。
三、命令
1. 命令格式
docker-compose [-f <arg>...] [options] [COMMAND] [ARGS...]
docker-compose -h|--help
-f指定yml文件,如果不指定默认为当前文件夹下的docker-compose.yml文件
2. 创建并且启动containers、启动services、重启services、停止services、删除services
- docker-compose up | start | restart | stop | rm
注意:a 第一次使用需要创建containers,因此使用up命令。 docker-compose up
b 如果使用自定义的yml文件名,需要加-指定文件:docker-compose -f redis.yml up
c 如果使用自定义的yml文件名,stop,restart,stop,rm命令依然需要加-f指定文件
d 删除containers需要停止services
3. 检查yml文件是否编写有误:config
docker-compose -f redis.yml config
四、例子 - zookeeper集群
version: '3.1'
services:
zoo1:
image: zookeeper:3.4
restart: always
container_name: zoo1
hostname: zoo1
ports:
- 2181:2181
environment:
ZOO_MY_ID: 1
ZOO_SERVERS: server.1=0.0.0.0:2888:3888 server.2=zoo2:2888:3888 server.3=zoo3:2888:3888
zoo2:
image: zookeeper:3.4
restart: always
container_name: zoo2
hostname: zoo2
ports:
- 2182:2181
environment:
ZOO_MY_ID: 2
ZOO_SERVERS: server.1=zoo1:2888:3888 server.2=0.0.0.0:2888:3888 server.3=zoo3:2888:3888
zoo3:
image: zookeeper:3.4
restart: always
container_name: zoo3
hostname: zoo3
ports:
- 2183:2181
environment:
ZOO_MY_ID: 3
ZOO_SERVERS: server.1=zoo1:2888:3888 server.2=zoo2:2888:3888 server.3=0.0.0.0:2888:3888