一 Docker Compose简介
docker-compose是docker容器的一种单机编排服务,docker-compose是一个管理多个容器的工具,可以替代docker命令对容器进行创建、启动和停止等手工操作。
docker-compose项目是Docker官方的开源项目,负责实现对Docker容器集群的快速编排,docker-compose将所管理的容器分为三层,分别是工程(project)、服务(service)以及容器(container)。
github地址:https://github.com/docker/compose/
二 docker-compose安装
root@node01:~# cd /opt/
root@node01:/opt# version=v2.9.0
root@node01:/opt# wget https://github.com/docker/compose/releases/download/${version}/docker-compose-linux-x86_64
root@node01:/opt# mv docker-compose-linux-x86_64 /usr/local/sbin/docker-compose
root@node01:/opt# chmod +x /usr/local/sbin/docker-compose
root@node01:/opt# docker-compose -v
Docker Compose version v2.9.0
三 docker-compose使用帮助
点击查看代码
root@node01:~# docker-compose --help
Usage: docker compose [OPTIONS] COMMAND
Docker Compose
Options:
--ansi string Control when to print ANSI control characters ("never"|"always"|"auto") (default "auto")
--compatibility Run compose in backward compatibility mode
--env-file string Specify an alternate environment file.
-f, --file stringArray Compose configuration files
--profile stringArray Specify a profile to enable
--project-directory string Specify an alternate working directory
(default: the path of the Compose file)
-p, --project-name string Project name
Commands:
build Build or rebuild services
convert Converts the compose file to platform's canonical format
cp Copy files/folders between a service container and the local filesystem
create Creates containers for a service.
down Stop and remove containers, networks
events Receive real time events from containers.
exec Execute a command in a running container.
images List images used by the created containers
kill Force stop service containers.
logs View output from containers
ls List running compose projects
pause Pause services
port Print the public port for a port binding.
ps List containers
pull Pull service images
push Push service images
restart Restart containers
rm Removes stopped service containers
run Run a one-off command on a service.
start Start services
stop Stop services
top Display the running processes
unpause Unpause services
up Create and start containers
version Show the Docker Compose version information
Run 'docker compose COMMAND --help' for more information on a command.
四 docker-compose文件格式
官方文档:https://docs.docker.com/compose/compose-file/
docker compose文件是一个yaml文件,所以注意行首的缩进很严格,默认docker-compose命令调用当前目录下的docker-compose.yml文件,因此一般执行docker-compose命令先进入docker-compose.yml文件所在目录。
docker compose文件格式很不同版本,版本不同,语法和格式有所不同。
4.1 示例
version: '3.9'
services:
admin-rel:
image: xxxxxxxx
container_name: xxx
restart: always
environment:
- TZ=Asia/Shanghai
volumes:
- ./conf/admin.yaml:/apps/admin.yaml
network_mode: host # 不可与ports同时使用
command: "xxxxx"
ports:
- "8080:8080"
- target: 9010
host_ip: 192.168.1.23
published: "29010"
protocol: tcp
mode: host
extra_hosts:
- "somehost:162.242.195.82"
- "otherhost:50.31.209.229"
networks:
admin-rel:
ipv4_address: 172.31.3.8
aliases:
- admin-rel
networks:
admin-rel:
driver: bridge
ipam:
config:
- subnet: 172.31.3.0/24