Docker创建了两个破坏我的互联网访问的桥梁

Cle*_*ent 6 linux networking docker

我面临一个非常奇怪的问题:

这是我的配置:

  • 码头工人17-ce
  • ubuntu 16.04.

我在两个不同的地方工作,与不同的互联网提供商.

首先,一切正常,我可以运行开箱即用的Docker并访问互联网没有任何问题.

但是在第二个地方,当码头工人正在运行时我无法访问互联网,而且由docker创建的两个虚拟briges正在运行时更加精确.

在这个地方,互联网连接运行非常严格,我可以在8.8.8.8 ping谷歌dns,但几乎所有DNS请求失败,并且几秒钟之后大部分时间互联网连接完全关闭.

(第一和第二位的唯一区别是互联网提供商).

起初我认为我可以通过更改默认网桥ip来解决这个问题,但这根本不能解决问题.

关键是docker守护进程的--bip选项更改了默认的docker bridge docker0的IP ,但是docker还创建了另一个名为br-1a0208f108d9的桥,它不反映传递给--bip选项的设置.

我想这第二座桥会给我的网络带来麻烦,因为它与我的wifi适配器配置重叠.

我很难尝试诊断这一点.

我的问题是:

  • 我怎么能确定我的假设是正确的,并且这第二个布里奇特与我的wifi适配器有冲突
  • 这第二座桥是什么?很容易找到有关docker0桥的文档,但我找不到任何与第二个桥相关的东西br-1a0208f108d9
  • 完全相同的设置如何在一个地方而不是另一个地方工作.

有了这个麻烦,我觉得我非常接近升级我的码头工作知识但在此之前我必须增加我的网络管理知识.

希望你能帮忙.

Cle*_*ent 6

我在阅读完这篇文章后设法解决了这个问题:

https://success.docker.com/Architecture/Docker_Reference_Architecture%3A_Designing_Scalable%2C_Portable_Docker_Container_Networks

第二个docker bridge br-1a0208f108d9是由docker创建的,因为我使用的是docker-compose文件,它涉及创建其他自定义网络.

这个网络使用固定的ip范围:

networks:
  my_network:
    driver: bridge
    ipam:
      config:
      - subnet: 172.16.0.0/16
        gateway: 172.16.0.1
Run Code Online (Sandbox Code Playgroud)
  • 在我家,物理wifi网络适配器使用DHCP自动分配地址192.168.0.X.
  • 但在另一个地方,同一个wifi适配器获取地址172.16.0.x.

这与自定义docker网络发生冲突.

解决方案只是更改自定义docker网络的IP.