Docker Compose 文件中指令简述
Docker Compose 的配置文件主要是对容器进行编排处理的,这里处理容器对象(Services)的配置、还包括对存储卷(Volumes)、网络(networks)、配置文件(configs)、加密配置(secrets)等对象的配置。
- 还有关于时间单位、字节单位的设置。
- 配置文件中变量的设置、扩展字段设置等。
一、Service 配置(容器对象)
1.1、最基本的指令
1、容器名字
设置容器名字:container_name
2、容器之间的依赖关系
设置容器间依赖关系:depends_on
3、构建过程配置
build构建配置指令;包括context、dockerfile、args、cache_from、labels、network、shm_size、target
4、镜像
执行镜像信息:image
5、容器的部署和运行相关的配置
设置容器部署信息:deploy;包括:endpoint_mode、labels、mode、placement、max_replicas_per_node、replicas、resources、restart_policy、rollback_config、update_config、Notsupportedfordockerstackdeploy
1.2、常用指令
1、为容器指定默认命令
执行指令:command
2、覆盖镜像中的 entrypoint
启动指令:entrypoint
3、环境变量信息
环境变量文件:env_file
4、定义环境变量
环境变量信息:environment
5、暴漏端口信息
暴漏的端口:expose
6、端口映射
映射端口:ports;包括:Short syntax、Long syntax
7、监控检查
配置健康检查:healthcheck
8、重启规则
容器重启策略:restart
9、在容器中添加解析记录
设置解析记录:extra_hosts
10、自定义DNS服务器
Dns 服务器:dns
11、自定义DNS服务器搜索地址
搜索DNS 服务器:dns_search
12、停止信号
设置容器停止信号:stop_signal
13、容器强制停止前等待时间
容器强制停止前等待时间:stop_grace_period
14、内核参数设置
内核参数设置:sysctls
15、临时目录配置
临时目录设置:tmpfs
16、资源限制
容器资源限制:ulimits
1.3、其他关联对象
1、容器间连接访问
容器间连接访问:links
2、日志配置
日志配置:logging
3、网络配置
指定网络驱动模式:network_mode
指定网络配置:networks;包括:aliases、ipv4_address, ipv6_address
4、设备映射列表
映射设备信息:devices
5、容器设置配置信息
配置信息指令:configs ;包括:Short syntax、Long syntax
6、加密信息
加密信息对象:secrets;包括:Short syntax、Long syntax
7、存储卷
存储卷配置:volumes;包括:Short syntax、Long syntax、Volumes for services, swarms, and stack files
1.4、指令扩展
1、连接到其他容器
external_links(不太明白,要求涉及到的容器都在同一个网络中)
2、PID 配置
将PID模式设置为主机PID模式。
3、初始化
在容器中运行一个init,它转发信号并接收进程。
4、容器隔离
容器隔离:isolation
5、标签
标签配置:labels
6、安全选项
安全选项:security_opt
7、用户命名空间相关
用户命名空间相关:userns_mode
8、添加或删除容器功能
指令:cap_add, cap_drop
9、为容器指定 parent cgroup
指令:cgroup_parent
10、为托管服务帐户配置凭据规范
此选项仅用于使用Windows容器的服务:credential_spec 包括:Example gMSA configuration
1.5、其他配置指令
Docker 服务容器指令相似;包括:domainname, hostname, ipc, mac_address, privileged, read_only, shm_size, stdin_open, tty, user, working_dir
二、逻辑卷配置
指定此卷应使用哪个卷驱动程序。默认为Docker引擎配置为使用的任何驱动程序,在大多数情况下是Local 本地。如果驱动程序不可用,docker compose up尝试创建卷时,引擎将返回一个错误。
配置指令包括:driver、driver_opts、external、labels、name
三、网络配置指令
顶级网络配置指令用于创建网络对象。包括:driver、driver_opts、attachable、enable_ipv6、ipam、internal、labels、external、name
四、配置文件对象配置
配置文件对象配置方式:包括file、external、name、driver、template_driver 五种类型。
五、加密配置对象配置
加密对象配置方式:包括file、external、name、template_driver 四种类型。
六、变量配置
配置选项可以包含环境变量。Compose使用运行docker Compose的shell环境中的变量值
七、用户自定义字段
Docker Compose 文件运行用户自定义配置字段。