【发布时间】:2021-05-11 20:36:53
【问题描述】:
我有一个简单的 docker-compose 文件,用于启动我的容器。我希望有另一个包含其他可选容器的 yaml 文件。它可以存在于单独的目录中。我的目标是找到一种方法来强制创建的群的命名空间,使它们存在于同一个网络/使用空间中,这样它们就可以相互交谈。
compose1.yaml
services:
web:
build: .
compose2.yaml
services:
web1:
build: .
因此,如果我同时运行这两个文件,它们将被添加到它们所在的文件夹之前,在我的情况下:分别为 a 和 b。
我想确保它们一起流动,尽管它们不在同一个文件层次结构中。
我一直在查看 docker-compse 文档中的关键字,不确定在 yaml 文件中执行此操作的最佳方法是什么,但在 CLI 中注意到,可能能够更新各种名称。
如何做到这一点?
注意:我还在 b 目录下创建了第三个文件,它是 compose2.yaml 的同级文件。所以我可以单独运行它们,它们工作得很好。
a/
compose.yaml
b/
compose2.yaml
another.yaml
所以我已经能够通过这样做将它们合并在一起:cd /b/ && docker-compose -f compose2.yaml -f another.yaml up -d 一起运行 2 个文件,它们存在于 B 命名空间下。同样,我也可以按顺序运行它们,而不是在 1 个命令中引用它们。
所以我的问题是我该怎么做:
docker-compose --namespace test compose.yaml up
docker-compose --namespace test compose2.yaml up
这样我可以使用 docker 相应地查看项目吗?看来我需要考虑从第一个共享父文件夹下运行命令?
所以如果 a 和 b 在测试中存在,我可以这样做:
cd /test
docker-compose -f a/compose.yaml up -d
docker-compose -f b/compose2.yaml up -d
那么我的服务将被列为:test_web、test_db-box 等。
【问题讨论】:
标签: docker docker-compose yaml docker-swarm