如何使用 docker-compose v2 加入默认桥接网络?
How to join the default bridge network with docker-compose v2?
我尝试设置一个 nginx-proxy 容器以通过端口 80 上的子域而不是特殊端口访问我的其他容器。正如您所猜到的,我无法让它工作。
我对 docker 本身有点陌生,发现编写 docker-compose.yml
文件对我来说更舒服,所以我不必经常编写长 docker run ...
命令.我认为使用 docker
或 docker-compose
启动容器的方式没有区别。但是,我注意到的一个区别是,使用 docker
启动容器不会创建任何新网络,但是使用 docker-compose
之后会有一个 xxx_default
网络。
我读到不同网络上的容器无法相互访问,这可能是 nginx-proxy 不将请求转发到其他容器的原因。但是,我无法找到一种方法来将我的 docker-compose.yml
文件配置为不创建任何新网络,而是像 docker run
那样加入默认桥接网络。
我尝试了以下方法,但出现错误,提示我无法像这样加入系统网络:
networks:
default:
external:
name: bridge
我也试过network_mode: bridge
,但似乎没什么区别。
我如何编写 docker-compose.yml
文件才能不创建新网络,或者根本不可能?
额外问题:docker
和 docker-compose
之间还有其他我应该知道的区别吗?
将 network_mode: bridge
添加到 docker-compose.yml
中的每项服务将停止 compose 创建网络。
如果任何服务没有配置此网桥(或主机),将创建一个网络。
测试并确认:
version: "2.1"
services:
app:
image: ubuntu:latest
network_mode: bridge
我尝试设置一个 nginx-proxy 容器以通过端口 80 上的子域而不是特殊端口访问我的其他容器。正如您所猜到的,我无法让它工作。
我对 docker 本身有点陌生,发现编写 docker-compose.yml
文件对我来说更舒服,所以我不必经常编写长 docker run ...
命令.我认为使用 docker
或 docker-compose
启动容器的方式没有区别。但是,我注意到的一个区别是,使用 docker
启动容器不会创建任何新网络,但是使用 docker-compose
之后会有一个 xxx_default
网络。
我读到不同网络上的容器无法相互访问,这可能是 nginx-proxy 不将请求转发到其他容器的原因。但是,我无法找到一种方法来将我的 docker-compose.yml
文件配置为不创建任何新网络,而是像 docker run
那样加入默认桥接网络。
我尝试了以下方法,但出现错误,提示我无法像这样加入系统网络:
networks:
default:
external:
name: bridge
我也试过network_mode: bridge
,但似乎没什么区别。
我如何编写 docker-compose.yml
文件才能不创建新网络,或者根本不可能?
额外问题:docker
和 docker-compose
之间还有其他我应该知道的区别吗?
将 network_mode: bridge
添加到 docker-compose.yml
中的每项服务将停止 compose 创建网络。
如果任何服务没有配置此网桥(或主机),将创建一个网络。
测试并确认:
version: "2.1"
services:
app:
image: ubuntu:latest
network_mode: bridge