Compose是Docker的服务编排工具,使用Compose,您可以使用YAML文件来配置应用程序的服务。然后,使用单个命令,您可以从配置中创建并启动所有服务,非常适合组合使用多个容器进行开发的场景。

官方指导https://docs.docker.com/compose/compose-file/

常用命令

build    构建或重建服务
kill     杀掉容器
logs     显示容器的输出内容
port     打印绑定的开放端口
ps       显示容器
pull     拉取服务镜像
restart  重启服务
rm       删除停止的容器
run      运行一个一次性命令
scale    设置服务的容器数目
exec     在容器里进行命令
start    开启服务
stop     停止服务
up       创建并启动容器

配置文件常用项

1.bulid     服务可以基于一份 Dockerfile
2.context   指定路径,并且可以选定 Dockerfile 和 args
3.dockerfile
4.args        构建过程中可访问的环境变量
5.cache_from  缓存解析镜像列表
6.labels      将元数据添加到生成的镜像中,可以使用数组或字典
7.shm_size    设置容器/dev/shm 分区的大小
8.target      根据对应的 Dockerfile 构建指定 Stage
9.cap_add,cap_drop  添加或删除容器功能
10.command    覆盖容器启动后默认执行的命令
11.configs    配置为每个服务赋予相应的访问权限
12.cgroup_parent 选择一个可选的父cgroup
13.container_name 指定容器名称
14.credential_spec  Windows 容器服务加载凭证规范
15.deploy   配置部署和运行服务
子项
   1.endpoint_mode  配置连接到群组外部客户端服务发现方法  ,vip ,dnsrr等
   2.labels
   3.mode          global 或者replicated
   4.placement    设置constraints 和 preferences
   5.replicas    运行的容器数量
   6.resources   配置资源限制
   7.restart_policy 容器的重新启动策略 none  on-failure   any(默认)
   8.update_config  配置更新服务,用于无缝更新应用 

16.devices  设置映射列表
17.depends_on  容器依赖,控制顺序
18.dns       自定义 DNS 服务器
19.dns_search 
20.tmpfs   临时文件目录挂载
21.entrypoint  指定接入点
21.env_file  文件中添加环境变量
22.environment 环境变量
23.expose 暴露端口
24.external_links 外部容器连接
25.extra_hosts 主机名映射
26.healthcheck 健康检查
27.image 容器启动的镜像
28.isolation
30.links
31.logging  日志服务
32.network_mode  网络模式bridge,host,none,service:[service name]等等
33.networks 加入指定网络
34.aliases
35.ipv4_address,ipv6_address  指定静态 IP 地址
36.PID 
37.ports 端口映射
38.secrets 访问权限
39.security_opt
40.stop_grace_period
41.stop_signal
42.sysctls
43.ulimits
44.userns_mode
45.volumes 挂载一个目录或者一个已存在的数据卷容器
46.volumes_from  挂载数据卷
47.restart  重启模式no,always,on-failure,unless-stopped
48.extends 继承与覆盖
49.其他选项cpu_shares、cpu_quota、 cpuse、domainname、hostname、 ipc、 mac_address、privileged、 read_only、 shm_size、stdin_open、tty、 user、 working_dir