Docker compose 文件可用来配置 Docker 服务,它的默认路径是 ./docker-compose.yml(也可使用 .yaml 后缀)。正如 docker run 一样,在 Dockerfile 中指定的指令(如 CMD、EXPOSE 等),也就没必要在 docker-compose.yml 中再指定一遍。另外,也可以在配置值中使用 ${varname} 这样的语法来使用环境变量。还有 YAML 中的布尔值类型 true、false、on、off、yes、no 需要使用引号引起来,以便把它们当成字符串解析。
接下来描述的就是版本 3 中用来定制服务的 Compose 文件格式的配置选项,具体用法见官方版
https://docs.docker.com/compose/compose-file/。
** build
该选项会在构建时刻使用。它可以是指定了构建上下文的路径字符串,也可以是含有 contex 选项和其他可选项的对象(两者取其一)。build 有下面几个子选项:
1、context:该选项可以是一个包含了 Dockerfile 的目录路径,也可以是一个 git 仓库地址。如果是一个相对路径,则是相对于 docker-compose.yml 的位置而言的。它的值会被当成构建上下文传给 Docker 守护进程。
2、dockerfile:用来指定替换的 Dockerfile 路径,须要同时指定 context 选项。
3、args:指定构建参数的值。首先要在 Dockerfile 中指定参数名,然后再使用该选项指定参数值。它的值可以是一个映射或列表,也可以忽略(这时它的值取自运行 compose 文件时的环境)。
4、cache_from:指定引擎解析缓存时要使用的镜像列表。
5、labels:使用 Docker Labels 为最终的镜像添加元数据,值为映射或列表形式。
** cap_add, cap_drop
用于添加或删除容器功能(可用 man 7 capabilities 查看完整功能列表。注意,在版本 3 的 compose 文件中,当使用 swarm 模式部署栈时,该选项会被忽略)。
** command
用于覆盖默认命令。值可以是普通字符串或是类似于 Dockerfile 中的数组形式。
** configs
为服务指定要使用的配置,并挂载到容器中的 /dst_config_name 下。指定的配置名需要在顶层范围的 configs 中指明。支持短语法和长语法。短语法中 dst_config_name 就是配置名,长语法中可以使用 source 指定配置名,使用 target 指定 dst_config_name,使用 uid 和 gid 指定用户 ID 和组 ID,使用 mode 指定 dst_config_name 的文件访问权限(写权限会被忽略,因为配置文件是挂载到临时文件系统中的)。
** cgroup_parent
为容器指定一个可选的所属组(当以 swarm 模式部署栈时该选项会被忽略)。
** container_name
自定义容器名(当以 swarm 模式部署栈时该选项会被忽略)。
** credential_spec
为所管理的服务账户配置证书规则。仅用于使用 Windows 类容器的服务。
** deploy
指定与服务部署相关的配置。它仅在使用 docker stack deploy 命令部署到一个 swarm 时才会生效,并且会被 docker-compose up 和 docker-compose run 忽略。它支持下面多个子选项。
1、 endpoint_mode:为连接到服务的外部客户端指定服务发现的方式。有两种方式:
a)vip:由 Docker 为服务赋一个虚拟 IP。Docker 会自动为客户端和服务工作节点选择合适的路由。这是默认的方式。
b)dnsrr:使用 DNS 服务发现。Docker 会为服务创建一个 DNS 项,以便使用服务名进行 DNS 查询时能连接到合适的 IP。该选项在你想使用自己的负载均衡器等情况下时是有用的。
2、labels:为服务(而非容器)设置标签。
3、mode:可为 global(每个 swarm 节点只有一个容器)或者 replicated(可有多个容器,默认)。
4、placement:指定布置约束。
5、replicas:当 mode 为 replicated 时,指定要运行的容器的数量。
6、resources:配置内存、CPU 等资源限制。
7、restart_policy:配置如何重启退出的容器。可以为下面一个或多个值:
a)condition:值为 none、on-failure 或者 any 之一,默认为 any。
b)delay:在下次尝试重启之前需要等待的时间,默认为 0。
c)max_attempts:最多尝试重启的次数,默认从不放弃。
d)window:判定一次重启失败前要等待的时间,默认立即判定。
8、update_config:配置如何更新服务。可以为下面一个或多个值:
a)parallelism:每次要更新的容器数量。
b)delay:更新下一组容器前要等待的时间。
c)failure_action:更新失败时要采取的动作。为 continue、rollback 或 pause 之一,默认为 pause。
d)monitor:判定一次更新失败前要持续的时间,默认为 0s。
e)max_failure_ratio:能容忍的最大更新失败率。
** devices
指定设备映射列表。
** depends_on
指出服务之间的依赖关系。
** dns
自定义 DNS 服务。
** dns_search
自定义 DNS 搜索域。
** tmpfs
在容器中挂载一个临时文件系统。
** entrypoint
覆盖默认的入口。注意,设置该选项将覆盖 Dockerfile 中使用 ENTRYPOINT 指令为服务镜像设置的默认入口,同时也会清除使用 CMD 指令设置的默认命令。
** env_file
指定环境变量文件。如果使用 docker-compose -f FILE 指定了一个 Compose 文件,则 env_file 中指定的文件就是相对于那个文件所在的目录而言的。另外,使用 environment 选项定义的环境环境变量将会覆盖这些文件中定义的同名变量。注意,build 选项不能读取这些文件 和 environment 定义的环境变量,而应该使用 build 的子选项 args 来代替。
** environment
添加环境变量。值可以是一个列表或映射。其中涉及的 boolean 值(如 true/false 和 yes/no)都需要用引号引起来,以免被 YML 解析器转换为 True 和 False。只指定了键的环境变量的值会被解析为机器运行时的对应值,这可用来指定比较敏感或与机器相关的信息。
** expose
暴露端口,但不向主机公布,因此只能被链接的服务访问。只有内部端口才可这样设置。
** external_links
关联到 Compose 之外启动的容器,尤其是那些提供了共享和常用服务的容器。
** extra_hosts
添加主机名映射。使用与 docker 客户端的 --add-host 参数相同的值,同时还要在提供服务的容器的 /etc/hosts 文件中指明该映射关系。
** healthcheck
配置如何检测运行服务的容器的“健康值”。
** image
指定容器所使用的镜像。
** isolation
指定容器的隔离技术。Windows 上支持的值有:default、process 和 hyperv,Linux 上仅支持 default。
** labels
使用 Docker 标签为容器添加元数据。
** links
关联另一个服务中的容器。如果同时指定了该选项和 networks 选项,那个关联的服务之间应该至少要有一个共同的网络才能相互通信。
** logging
配置服务日志。
** network_mode
指定网络模式。注意“network_mode: "host"”不能与 links 选项合用。
** networks
指定服务要加入的网络,这些网络也应该在顶级范围中使用 networks 指明。它支持下面 几个子选项:
1、aliases:创建服务在某个网络下的别名列表,这样该网络中的其他容器除了使用服务名(默认的)外还可使用别名访问该服务中的容器。
2、ipv4_address/ipv6_address:为加入到该网络的服务指定一个静态 IP。这时在顶级范围中创建该网络时应该包含一个 ipam 选项块,用以配置子网部分。如果要支持 IPv6,还应该指定 enable_ipv6 选项。
** pid
设置 pid 模式为主机 pid 模式。这会让容器和主机共享 PID 地址空间。
** ports
用来公布容器端口。
** secrets
配置服务对某些敏感数据的访问权限。服务范围下的该选项应该与顶层范围下的 secrets 选项同时指定。
** security_opt
覆盖每个容器的默认标记方案。
** stop_grace_period
指定在发送 SIGKILL 信号前,如果没对 SIGTERM 信号(或其他使用 stop_signal 选项设置的停止信号)进行处理时试图停止一个容器要等待的时间限制,默认为 10s。
** stop_signal
设置停止容器时要发送的信号,默认为 SIGTERM。
** sysctls
指定容器中要设置的内核参数。
** ulimits
覆盖容器的默认资源限制。
** userns_mode
禁用此服务的用户命名空间(如果有的话)。
** volumes
指定服务要使用的卷。如果仅针对某一服务,可以只指定卷主机路径。但若要多个服务使用,应该使用在顶层范围下的 volumes 选项中指定的卷名。
分享到:
相关推荐
# 以 Compose 配置文件为中心的相对路径作为数据卷挂载到容器 - ./images/nginx/sites-enabled:/etc/nginx/sites-enabled - ./images/nginx/cert:/etc/nginx/cert # 加入指定网络 networks: default: # 同一...
2、docker-compose一键式部署配置脚本文件 部署方法: 1、下载es.sh+docker-compose一键部署7.9.3elk日志监控系统.zip压缩包 2、先执行es.sh基础环境脚本 sh es.sh 3、执行docker-compose脚本拉取镜像及elk容器服务...
docker-compose文件以dockerized方式启动KeyCloak和Postgres 基于Docker Volume的Keycloak主题安装 Docker Swarm Secrets存储密码 SSL配置,允许通过https服务密钥隐藏 自定义主题选项 入门 Docker群将提供所有...
它使用标签设置不同的选项以为每个容器启用Docker-ci。 Docker-CI监视容器的创建,这意味着您不必在更新容器配置时重新启动它。 Docker-CI然后将创建与此模式相对应的路由: http(s)://0.0.0.0[:port]/deploy/:...
给定docker-compose.yml文件,在include部分中获取每个配置,然后将其合并到基本的docker-compose.yml中。 如果任何包含的文件具有包含节,则继续提取并合并其中的每个节,直到没有其他文件要包含。 用例 如果您...
去做[]配置ELK堆栈以使用新的目录布局[]添加更好的Phing支持用法注意-如果这是您第一次使用Docker,建议您阅读的语法说明,但是docker-compose.yml和docker-compose.yml docker-compose-developer-php7.yml文件中也...
使用PIP安装Docker Compose(支持版本固定) 安装docker PIP封装所以Ansible的docker_*模块工作管理Docker注册表登录凭证配置1个或多个用户以运行Docker而无需root访问权限配置Docker守护程序的选项和环境变量配置...
etherpad-silkkycloud 为etherpad.silkky.cloud制作的Etherpad docker-compose文件用法:重要的: 您将需要一个有效的traefik容器才能使用它。 您的traefik配置可能需要更改才能与docker-compose.yml文件一起使用。 ...
DR $ curl -sSL https://raw.githubusercontent.com/bitnami/bitnami-docker-owncloud/master/docker-compose.yml > docker-compose.yml$ docker-compose up -d 您可以在“部分中找到默认凭据和可用的配置选项。...
-环境和配置设置选项 - -compose使用的环境变量声明 -http或https(通过“加密”)提供您的内容 -安全套接字层加密选项 -使用SSL证书加密(关于DNS注册假设的重要) -如何续订加密证书 -部署您的WordPress网站 -...
环境变量这些环境变量中的大多数都在etherpad配置文件中使用,并直接对应于名称相似的配置选项。 请参阅示例Etherpad配置文件。基本配置选项: ETHERPAD_TITLE (默认: Etherpad ) 此Etherpad实例的标题。 ...
/samba/smb.conf :容器使用的Samba配置文件。 /samba/[share] :请将您的Samba共享文件夹映射到容器中的/samba/ 。 环境变量 GROUPS :组配置。 格式: [group name],[group id] 。 用;连接多个组配置; 。 USERS ...
了解知识的Docker映像 带有Prometheus导出器,JMX暴露和改进的内存配置的修改后的fork。... 如果要以最低配置在本地计算机上运行Knowage以进行测试,请在带有docker-compose.yml文件的文件夹内运行以下命令
Nestjs Elasticsearch Logger 安装 npm install @nestjs.pro/logger-...在您的AppModule导入ElasticsearchLoggerModule ,并AppModule传递一些配置选项: @ Module ( { imports : [ ElasticsearchLoggerModule
所有微服务的基本仓库 使用docker compose在本地运行 选项1(默认)-所有服务均处于本地模式,没有服务发现或... 在此示例中,选择了“ dev”,但是可以设置任何配置文件。 export PROFILE=dev docker-compose up -d
从cmdbuild 2.4.0开始,我将停止添加带有链接选项的docker-compose文件 从10/2016起,我将停止添加tomcat 6 dockerfile。 请在上打开问题 我建议将最新版本的cmdbuild与Tomcat 7一起使用 您想要最新版本吗? ...
编织文件:README.md编结节点建立用于部署的图像运行docker-compose build --build-arg SSH_PRIVATE_KEY="$(cat ~/.ssh/id_rsa)" 等待图像生成运行部署的映像该图像采用以下参数: RUNMODE (仅适用于docker-compose...
: Wikibase-docker说明: : 用法设置配置选项例如,请参阅config.py跑步./run.sh 细节run.sh采取的步骤: 下载docker-compose.yml的新副本配置YAML:使用config.py中的设置编辑docker-compose.yml文件启动Docker...
的内容复制docker-compose.yml.sample到一个新的文件名为docker-compose.yml 。 (注意:执行此操作后不要删除示例文件,因为它仍在源代码管理中。) 在docker-compose.yml : 根据数据源( DB_TYPE , DB_HOST等)...
您可以使用环境变量来配置内部启动的服务,也可以提供自己的/docker-compose.yml文件。 无论哪种方式, swarm-launcher都会负责项目的设置,拆除和清理。 支持的架构 该映像支持以下体系结构: linux/amd64 ...