gpt4 book ai didi

docker - 在 docker-compose 应用程序和其他容器之间在 docker swarm 上创建网络

转载 作者:行者123 更新时间:2023-12-02 20:19:17 24 4
gpt4 key购买 nike

所以,假设我有一个部署到 Docker Swarm 的应用程序,它有一个看起来像这样的 compose 文件:

version: '2'

services:
postgres:
image: postgres
environment:
- POSTGRES_PASSWORD=password
networks:
- app-network
volumes:
- postgres:/var/lib/postgresql/data

myapp:
container_name: 'myapp'
image: myapp:debug
depends_on:
- postgres
build:
context: .
dockerfile: Dockerfile.debug
networks:
- app-network

networks:
app-network:
driver: bridge

volumes:
postgres:

也许我想部署几个这样的应用程序,它们通过 rabbitmq 容器进行通信。我想我可以像这样在 swarm 上创建一个网络:
$ docker network create -d overlay common-network

然后我可以像这样配置一个 rabbitmq 实例:
$ docker run -d \
--hostname rabbit \
--name rabbit \
-e RABBITMQ_ERLANG_COOKIE='bleh' \
-e RABBITMQ_DEFAULT_USER='rabbitmq' \
-e RABBITMQ_DEFAULT_PASS='rabbitmq' \
-e RABBITMQ_DEFAULT_VHOST='/' \
rabbitmq:3

然后部署我的应用程序:
$ docker-compose up

但是,看起来应用程序无法达到“兔子”。
$ docker network ls
NETWORK ID NAME DRIVER SCOPE
176e455e8215 common overlay global
8f1b14690f2b swarm-agent-40001BF7000000/bridge bridge local
3cfaae53a0dc swarm-agent-40001BF7000000/host host local
a01b27b94fcc swarm-agent-40001BF7000000/none null local
aa6f5b56a6d3 swarm-agent-40001BF7000000/publish_app-network bridge local

应用程序可以看到在同一个 compose 文件中定义的服务(如上所示),但它们无法看到除此之外的服务。

如何在同一网络上获取所有应用程序?

编辑 1
我也尝试将撰写文件更改为:
networks:
- app-network
- common

networks:
adapter-network:
driver: bridge
common:
external: true

最佳答案

所以,事实证明我只需要使用 --net 参数创建 rabbitmq 服务:

docker run -d \
--hostname rabbit \
--name rabbit \
--net common \
-e RABBITMQ_ERLANG_COOKIE='blah' \
-e RABBITMQ_DEFAULT_USER='rabbitmq' \
-e RABBITMQ_DEFAULT_PASS='rabbitmq' \
-e RABBITMQ_DEFAULT_VHOST='/' \
rabbitmq:3

引用撰写文件中的“公共(public)”网络:
networks:
- app-network
- common

networks:
adapter-network:
driver: bridge
common:
external: true

关于docker - 在 docker-compose 应用程序和其他容器之间在 docker swarm 上创建网络,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40024999/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com