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