docker-compose 中等效于 Docker 选项 --config
概述
如果您正在使用 Docker Compose 来定义和运行多容器 Docker 应用程序,您可能希望为您的应用程序指定自定义配置文件或目录。幸运的是,Docker Compose 提供了--config选项,它允许您做到这一点。
--config选项用于为 Docker Compose 指定单个配置文件或包含多个配置文件的目录。要使用它,您可以将其作为参数传递给docker-compose命令。例如:
$ docker-compose --config /path/to/custom/config.yml up
此命令将告诉 Docker Compose 使用位于/path/to/custom/config.yml的配置文件作为应用程序的配置。
或者,您可以使用--config选项指定包含多个配置文件的目录:
$ docker-compose --config /path/to/custom/config/dir up
在这种情况下,Docker Compose 将在指定的目录中查找名为docker-compose.yml的文件并将其用作配置文件。
Config 与 File 选项对比
值得注意的是,--config选项类似于 Docker Compose 中的--file选项,后者用于指定特定的配置文件,无论其位置或名称如何。但是,--config用于指定单个配置文件或包含多个配置文件的目录,而--file用于指定特定的配置文件,无论其位置或名称如何。
--file 选项示例:
$ docker-compose --file file1.yml --file file2.yml up
用例
使用--config选项可以有效地为您的 Docker Compose 应用程序指定自定义配置文件或目录。如果您想测试不同的配置而不修改默认配置文件,或者如果您想在不同的系统上使用不同的配置文件或目录,这将特别有用。
为了让您了解--config选项如何在实践中使用,这里有一些示例:
# Use a custom configuration file docker-compose --config /path/to/custom/config.yml up # Use a directory containing multiple configuration files docker-compose --config /path/to/custom/config/dir up
在这两种情况下,Docker Compose 都将使用指定的配置文件或目录作为应用程序的配置。
值得注意的是,--config 选项仅在启动 Docker Compose 应用程序时使用,不能与其他 Docker Compose 命令一起使用。如果您想为其他 Docker Compose 命令指定自定义配置选项,则需要使用其他选项或环境变量。
实现
以下是两个 Docker Compose 配置文件(docker-compose.yml和docker-compose-test.yml)的示例,它们可以与--config选项一起使用:
docker-compose.yml
version: '3.9' services: web1: image: nginx ports: - 81:80 db1: image: postgres environment: POSTGRES_USER: user POSTGRES_PASSWORD: password
docker-compose-test.yml
version: '3.9' services: web2: image: nginx ports: - 82:80 db2: image: mysql environment: MYSQL_USER: testuser MYSQL_PASSWORD: testpassword
要启动这些配置文件中定义的服务,您可以像这样使用 --config 选项:
# Start services using docker-compose.yml docker-compose --config docker-compose.yml up # Start services using docker-compose-test.yml docker-compose --config docker-compose-test.yml up
在第一种情况下,Docker Compose 将使用docker-compose.yml文件启动web1和db1服务,分别使用 Nginx 和 PostgreSQL 镜像。在第二种情况下,Docker Compose 将使用docker-compose-test.yml文件启动web2和db2服务,分别使用 Nginx 和 MySQL 镜像。
结论
总之,--config选项对于为您的 Docker Compose 应用程序指定自定义配置文件或目录非常有用。它可以用于测试不同的配置或在不同的系统上使用不同的配置文件或目录。通过使用--config选项,您可以更好地控制 Docker Compose 应用程序的配置方式,并使其更易于在不同的系统上一致地运行您的应用程序。