当前位置: 首页 > 面试题库 >

如何使用docker-compose v2加入默认网桥网络?

穆轶
2023-03-14
问题内容

我试图设置一个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文件才能不创建新网络,或者根本不可能呢?

额外的问题:dockerdocker-compose我应该知道之间还有其他区别吗?


问题答案:

添加network_mode: bridge到您的每个服务docker-compose.yml中将停止创建网络。

如果未使用此网桥(或主机)配置任何服务,则将创建网络。

经过测试并确认:

version: "2.1"

services:
  app:
    image: ubuntu:latest
    network_mode: bridge


 类似资料:
  • 有没有办法解决这个问题? 操作系统:Debian 8 Docker版本:1.9.0,构建76d6bc9 ifconfig输出:

  • 问题内容: 任何想法如何解决? 操作系统 :Debian 8 Docker版本 :1.9.0,内部版本76d6bc9 ifconfig输出 : 问题答案: 升级后,我遇到了类似的问题。 跑 重置您的网络。然后重新启动docker(或取决于您的操作系统)。 如果一切正常,则可以删除目录。

  • 本文向大家介绍Docker主机网络与网桥网络,包括了Docker主机网络与网桥网络的使用技巧和注意事项,需要的朋友参考一下 可用于Docker网络的单主机网络有两种类型:“主机”和“桥”网络。单主机网络意味着它们的影响对于每个单独的主机都是局部的。 在主机网络的情况下,特定的Docker容器可以直接使用主机的网络来发送和接收数据包。对于网桥网络,它需要端口映射才能进行通信。 为了更好地理解它们,让

  • 本文向大家介绍Docker网络上的用户定义网桥,包括了Docker网络上的用户定义网桥的使用技巧和注意事项,需要的朋友参考一下 在本文中,我们将讨论为什么应该在默认桥网络上使用用户定义的桥网络。我们还将使用实际示例进行演示。 如果您使用用户定义的网桥进行容器网络连接,则该网络中的所有容器会自动将所有必需的端口公开给彼此,而不是公开给外部世界。这增加了容器之间的互操作性,并提供了更好的隔离性。 使用

  • 本文向大家介绍docker-compose 如何使用默认网络创建基本的LAMP环境,包括了docker-compose 如何使用默认网络创建基本的LAMP环境的使用技巧和注意事项,需要的朋友参考一下 示例 docker-compose.yml nginx / nginx.conf 请注意,nginx配置已简化,但上面的代码应该可以进行测试-基本上它所做的就是代理php应用程序。映射到端口81,以避

  • 我正在构建包括两个容器的docker-comment服务。其中一个容器(节点)被设计成支持自动发现机制,并且需要成为主机局域网的一部分(因为我需要多播UDP包由局域网路由器处理,而不是内置的docker路由器)。 虽然docker-compose.yml中的network_mode:主机完美地做到了这一点,但我需要此服务也可以通过默认的docker-comment网络(如:超文本传输协议://节点