dar*_*rio 5 networking routes docker
我已经使用以下路由表配置了我的主机:
user@host:~ $ netstat -rn
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
{VPN SERVER IP} 192.168.2.1 255.255.255.255 UGH 0 0 0 wlan0
172.17.0.0 0.0.0.0 255.255.0.0 U 0 0 0 docker0
192.168.2.0 0.0.0.0 255.255.255.0 U 0 0 0 wlan0
Run Code Online (Sandbox Code Playgroud)
因此,如果没有连接到 VPN,我就不会连接到互联网:
user@host:~ $ ping google.com
connect: Network is unreachable
Run Code Online (Sandbox Code Playgroud)
一旦我启动 docker 容器,主机的路由表就会更改为:
user@host:~ $ netstat -rn
Destination Gateway Genmask Flags MSS Window irtt Iface
0.0.0.0 192.168.2.1 0.0.0.0 UG 0 0 0 wlan0
{VPN SERVER IP} 192.168.2.1 255.255.255.255 UGH 0 0 0 wlan0
169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 docker0
169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 vethcbeee28
172.17.0.0 0.0.0.0 255.255.0.0 U 0 0 0 docker0
192.168.2.0 0.0.0.0 255.255.255.0 U 0 0 0 wlan0
Run Code Online (Sandbox Code Playgroud)
我再次连接到互联网:
user@host:~ $ ping google.com
PING google.com (216.58.212.238) 56(84) bytes of data.
Run Code Online (Sandbox Code Playgroud)
基本上我的主机在没有连接到 VPN 的情况下应该无法连接到互联网。但是,启动容器会再次设置到我的网关的默认路由。
有人知道这是怎么回事吗?并且,如何避免这种情况?
到目前为止,我在这里找到了一个我想避免的解决方法。
编辑:
我刚刚发现即使从 dockerfile 构建图像也会发生这种情况!
nogateway您可以在文件中指定该选项/etc/dhcpd.conf。
# Avoid to set the default routes.
nogateway
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2333 次 |
| 最近记录: |