docker-compose
docker-componse是一个容器编排工具,能够进行多容器的部署和管理,docker-componse使用yaml配置文件进行配置
ubuntu安装
apt-get install docker-compose
docker-compose.yaml配置详解
version: "3.8"
services: # 容器
servicename: # 服务名字,这个名字也是内部 bridge网络可以使用的 DNS name
image: # 镜像的名字
command: # 可选,如果设置,则会覆盖默认镜像里的 CMD命令
environment: # 可选,相当于 docker run里的 --env
volumes: # 可选,相当于docker run里的 -v
networks: # 可选,相当于 docker run里的 --network
ports: # 可选,相当于 docker run里的 -p
servicename2:
volumes: # 可选,相当于 docker volume create
networks: # 可选,相当于 docker network create
version
用于指定该配置文件所属的docker-compose版本,该版本一定要和宿主机安装的docker-compose版本一致,并且该参数必须存在
version和Docker Compose 版本对应关系的数据
Docker Compose 版本 | version 字段 |
---|---|
1.0.x | ‘1’ |
1.1.x | ‘2’ |
1.2.x | ‘2.1’ |
1.3.x | ‘2.1’ |
1.4.x | ‘2.1’ |
1.5.x | ‘2.1’ |
1.6.x | ‘2.1’ |
1.7.x | ‘2.1’ |
1.8.x - 1.10.x | ‘2.1’ |
1.11.x | ‘2.1’ 或 ‘2.2’(取决于特性使用) |
1.12.x - 1.13.x | ‘2.1’ 或 ‘2.2’(取决于特性使用) |
1.14.x | ‘2.1’ 或 ‘2.3’(取决于特性使用) |
1.15.x | ‘2.1’ 或 ‘2.3’(取决于特性使用) |
1.16.x - 1.17.x | ‘2.1’ 或 ‘2.3’(取决于特性使用) |
1.18.x | ‘2.1’ 或 ‘2.4’(取决于特性使用) |
1.19.x | ‘3.0’ |
1.20.x | ‘3.0’ |
1.21.x | ‘3.0’ |
1.22.x | ‘3.0’ |
1.23.x | ‘3.0’ |
1.24.x - 1.27.x | ‘3.0’ |
1.28.x | ‘3.7’ 或 ‘3.8’(取决于特性使用) |
1.29.x | ‘3.7’ 或 ‘3.8’(取决于特性使用) |
services
services是一个主要的参数,用于定义应用程序中的各个服务(容器),如果要在docker-componse中控制一些容器,就要写进services中,如:
version: "3"
services:
b1:
build: ./b1
ports:
- "18888:8888"
- "18889:22"
b2:
build: ./b2
ports:
- "18890:80"
- "18891:22"
b3:
build: ./b3
ports:
- "18892:80"
- "18893:22"
b4:
build: ./b4
ports:
- "18894:80"
- "18895:22"
build
build用于指定Dockerfile的位置,build可以直接写出位置(如上面的代码中就是),也可以添加更多参数,进行间接写出如:
version:"3.7"
services:
webapp:
build:
context:./awd5
dockerfile:Dockerfile_Name
args:
buildno:1
这种方法,可以Dockerfile可以自定义,而且context可以是一个连接git仓库的远程地址,而args是一个构建参数,和dockerfile的agr参数性质等同。
image
如果没用Dockerfile文件的话,可以使用image指定镜像进行构建,如:
version:"3.7"
services:
zk_server:
image: zookeeper:3.4
ports:
- 2181:2181
常用命令
启动docker
docker-compose up -d #根据docker-compose配置文件,启动docker,-d表示后台运行
停止docker
docker-compose down
查看日志
docker-compose logs
重启项目中的容器
docker-compose restart
巨人的肩膀
https://juejin.cn/post/7223965203255607355
https://dockertips.readthedocs.io/en/latest/docker-compose/compose-file.html