Docker Compose 之进阶篇

前端之家收集整理的这篇文章主要介绍了Docker Compose 之进阶篇前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

》和《》两篇文章中分别介绍了 docker compose 的基本概念以及实现原理。本文我们将继续探索 docker compose,并通过 demo 介绍一些主要的用法

配置文件

配置文件是当前目录中的 docker-compose.yml 文件,当然我们可以通过 -f 选项指定一个其它名称配置文件,比如:

$ docker-compose -f docker-compose-dev.yml up

添加多个 -f 选项,docker-compose 会自动合并它们,当然也会根据先后顺序把一些重复的配置项覆盖掉。 下面我们来演示一个常见的使用场景,先创建一个名称为 docker-compose-base.yml 的配置文件,其内容如下:

version:

名称为 docker-compose-dev.yml 的配置文件

version: -

配置文件:

$ docker-compose -f docker-compose-base.yml -f docker-compose-dev.yml config

显示 docker-compose 程序解析到的配置文件内容

配置文件的内容被合并了。接下来我们再来看看配置文件覆盖的情况。新创建一个名为 docker-compose-prod.yml 的配置文件,编辑其内容如下:

version: -

后执行下面的命令:

$ docker-compose -f docker-compose-base.yml -f docker-compose-prod.yml config

文件中的 image 设置覆盖了 docker-compose-base.yml 文件中的设置,并且映射的端口也改成了 80:5000。配置文件。

支持一种合并、覆盖配置文件的写法,就是使用约定的文件名称 docker-compose.yml 和 docker-compose.override.yml。下面我们把 docker-compose-base.yml 文件改名为 docker-compose.yml,把 docker-compose-prod.yml 文件改名为 docker-compose.override.yml,并直接执行不带 -f 选项的命令:

$ docker-compose config

自动合并了配置文件 docker-compose.yml 和 docker-compose.override.yml。这种方式虽然省去了指定 -f 选项的麻烦但其缺点也是很明显的,就是无法指定更多不同的应用场景。

功能能够对容器进行网络上的隔离,下面的 demo 中我们创建三个 service 和两个虚拟网络(注意,该 demo 主要是演示 network 的用法,所以笔者并没有配置 proxy service 中的 Nginx):

version: Nginx ports: - ----

》一文中介绍的 web 应用和 Dockerfile 来创建 webapp service)。请使用下面的命令来启动应用:

$ docker-compose -p testnet -f docker-compose-net.yml up -d

version: - ---

version: -/-/nginx//var/log//- jenkins_home:/var/- mydata:/

version: - -size: -:

version: -&default---size: -: services:
web:
build: .
ports:
- <span style="color: #800000">"
<span style="color: #800000">5000:5000
<span style="color: #800000">"
<span style="color: #000000">
logging:
default-<span style="color: #000000">logging
redis:
image:
<span style="color: #800000">"
<span style="color: #800000">redis:latest
<span style="color: #800000">"
<span style="color: #000000">
logging:
default-logging

$ docker-compose -p template -f docker-compose-template.yml config

猜你在找的Docker相关文章