Docker 组成网络:如果多个文件和服务定义不存在则创建?
Docker Compose networks: create if not exists across multiple files and service definitions?
Docker 在此撰写。我正在查看 Docker networking guide 并试图了解如何使用 Docker 网络执行相当于“CREATE TABLE IF NOT EXISTS
”的操作。意思是,在 SQL 中,您通常可以告诉 RDBMS 创建一个 table 如果 它尚不存在。
在这里,在 Docker Compose 文件中,我想告诉 Docker 创建一个网络(如果它尚不存在),然后将我的服务(容器)连接到它。
这可以吗?理想情况下它可以是灵活的,这样我可以有几个不同的 Docker Compose 文件(docker-compose-a.yml
、docker-compose-b.yml
和 docker-compose-c.yml
),并且它们都定义了各种服务(容器),但它们都被配置为创建(除非之前已经创建)并使用相同的“fizzbuzz
”网络。
有什么想法吗?
如果网络不存在,目前无法创建网络。
您可以阅读更多内容。
更新 1
正如您在评论中所说,您可以将此添加到您的 docker-compose
个文件(每个文件)中,以便位于同一网络中。
首先通过这个命令创建一个网络:
docker network create NAME
然后将其添加到 docker-compose
个文件中:
// from here to next comment is your docker-compose current status
version: '3'
services:
web:
image: some
// end here your current
// here is the part you should add for network
networks:
default:
external:
name: NAME
请注意,在 运行 docker-compose up -d
之前,您应该创建网络,否则会出现网络不存在的错误。
Docker 在此撰写。我正在查看 Docker networking guide 并试图了解如何使用 Docker 网络执行相当于“CREATE TABLE IF NOT EXISTS
”的操作。意思是,在 SQL 中,您通常可以告诉 RDBMS 创建一个 table 如果 它尚不存在。
在这里,在 Docker Compose 文件中,我想告诉 Docker 创建一个网络(如果它尚不存在),然后将我的服务(容器)连接到它。
这可以吗?理想情况下它可以是灵活的,这样我可以有几个不同的 Docker Compose 文件(docker-compose-a.yml
、docker-compose-b.yml
和 docker-compose-c.yml
),并且它们都定义了各种服务(容器),但它们都被配置为创建(除非之前已经创建)并使用相同的“fizzbuzz
”网络。
有什么想法吗?
如果网络不存在,目前无法创建网络。
您可以阅读更多内容
更新 1
正如您在评论中所说,您可以将此添加到您的 docker-compose
个文件(每个文件)中,以便位于同一网络中。
首先通过这个命令创建一个网络:
docker network create NAME
然后将其添加到 docker-compose
个文件中:
// from here to next comment is your docker-compose current status
version: '3'
services:
web:
image: some
// end here your current
// here is the part you should add for network
networks:
default:
external:
name: NAME
请注意,在 运行 docker-compose up -d
之前,您应该创建网络,否则会出现网络不存在的错误。