这里的菜鸟是从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
容器运行时的表格(外部无互联网连接)
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)。 谢谢
答案 0 :(得分:0)
这是因为,如您所见,docker创建了一个名为“ docker0”的linux桥。 您可以更改Docker桥的默认设置来解决此问题。 通过在daemon.json
中提供bip选项和所需的子网来配置默认的桥接网络。# vi /etc/docker/daemon.json
{
"bip": "172.200.0.1/16"
}
并重新启动服务。
systemctl restart docker
答案 1 :(得分:0)
在ubuntu 20.04上,我尝试了很多方法, 比如阻止dhcpd to update route 或change NetworkManager configure to let network-manager to igonre veth* device 以上均无效。
我花了很多时间,发现connman服务改变了默认路由, 更改它的配置文件/etc/connman/main.conf,取消注释以下行
#NetworkInterfaceBlacklist = vmnet,vboxnet,virbr,ifb,veth-,vb-
和
systemctl restart connman
重启 connman 服务。问题最终得到解决。