2

这里是一个菜鸟,从 Orange Pi 3(Rasberry Pi 克隆)中的 docker 开始。

我正在尝试配置并启动一个 docker 容器(bitwarden_rs),但是当我这样做时,我失去了与外部网络的连接。Docker 弄乱了我的路由表。

网络配置:我有一个桥接 eth0 和 wlan0 的桥接器 br0。(eth0连接路由器,wlan0配置为AP模式)

容器停止时的表:

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         _gateway        0.0.0.0         UG    425    0        0 br0  <---OK
link-local      0.0.0.0         255.255.0.0     U     1000   0        0 br0
172.17.0.0      0.0.0.0         255.255.0.0     U     0      0        0 docker0
192.168.1.0     0.0.0.0         255.255.255.0   U     425    0        0 br0
192.168.2.0     0.0.0.0         255.255.255.0   U     425    0        0 br0

容器运行时的表(外部无法访问 Internet)

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         0.0.0.0         0.0.0.0         U     205    0        0 docker0 <---NOT OK
default         _gateway        0.0.0.0         UG    425    0        0 br0
link-local      0.0.0.0         255.255.0.0     U     205    0        0 docker0
link-local      0.0.0.0         255.255.0.0     U     230    0        0 vethed140ce
link-local      0.0.0.0         255.255.0.0     U     1000   0        0 br0
172.17.0.0      0.0.0.0         255.255.0.0     U     0      0        0 docker0
192.168.1.0     0.0.0.0         255.255.255.0   U     425    0        0 br0
192.168.2.0     0.0.0.0         255.255.255.0   U     425    0        0 br0

我能做些什么来修复它?这是 docker config 问题或者我的系统问题(armbian)。谢谢

4

2 回答 2

3

在 ubuntu 20.04 上,我尝试了很多方法,例如阻止dhcpd 更新路由更改 NetworkManager 配置以让 network-manager 到 igonre veth* 设备 以上都不起作用。

我花了很多时间发现connman服务更改了默认路由,更改它的配置文件/etc/connman/main.conf,取消注释以下行

#NetworkInterfaceBlacklist = vmnet,vboxnet,virbr,ifb,veth-,vb-

systemctl restart connman

重新启动 connman 服务。问题最终解决了。

于 2021-01-20T09:42:53.960 回答
-1

这是因为,如您所见,docker 创建了一个名为“docker0”的 linux 网桥。您可以更改 docker 桥的默认设置以解决该问题。通过在 daemon.json 中提供 bip 选项以及所需的子网来配置默认桥接网络

# vi /etc/docker/daemon.json
{
  "bip": "172.200.0.1/16"
}

并重新启动服务。

 systemctl restart docker

更多细节在这里这里

于 2020-06-03T15:40:38.303 回答