gpt4 book ai didi

docker - 如何使用 docker-compose v3 加入默认网桥和用户定义的网桥?

转载 作者:行者123 更新时间:2023-12-01 05:49:59 27 4
gpt4 key购买 nike

我有一个 docker-compose yml,其中有几个服务位于用户定义的网络中(在桥接模式下)。我想在默认 docker 网桥上连接我的服务,以便向外界公开一个端口。

总而言之,有一个我想要做的具体例子:

services:
service1:
networks:
- my_network

service2:
networks:
- my_network
- bridge
ports:
8080:8080

如所述 here我尝试了以下操作,但导致此错误: ERROR: for app network-scoped alias is supported only for containers in user defined networks .
networks:
my_network:
driver: bridge
bridge:
external: true

我也尝试了 How to join the default bridge network with docker-compose v2? 中提出的解决方案,但不能混用关键字 network_mode: bridge和关键字 networks在 docker compose 中。

我也尝试在docker-compose.yml中去掉对默认网桥网络的引用,并在启动服务后将我的service2容器添加到默认网桥中,例如:
docker-compose up
docker network connect bridge service2

这种方法有效,我可以从外部访问我在 service2 上暴露的端口,我最终得到:
docker inspect service2


"Networks": {
"bridge": {
...
},
"my_network": {
...
}
}

但我不想执行 docker network connect bridge service2每次我想开始我的服务。

我知道我的问题与这个问题非常相似: How to use the host network, and any other user-defined network together in Docker-Compose? ,除了我不想使用主机模式。

有什么办法可以同时连接用户定义网络和默认网桥上的服务?

最佳答案

我认为您不必在默认桥接网络上即可将端口从容器发布到您的机器。

关于docker - 如何使用 docker-compose v3 加入默认网桥和用户定义的网桥?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55723797/

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