首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当docker容器运行时,无法删除默认网关

当docker容器运行时,无法删除默认网关
EN

Unix & Linux用户
提问于 2017-12-02 23:04:52
回答 1查看 1.5K关注 0票数 1

我想从运行Raspbian的Raspberry Pi中删除默认路由。

这就是我从route -n得到的信息:

代码语言:javascript
复制
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.178.1   0.0.0.0         UG    203    0        0 eth1
169.254.0.0     0.0.0.0         255.255.0.0     U     204    0        0 docker0
169.254.0.0     0.0.0.0         255.255.0.0     U     206    0        0 veth07ba603
172.17.0.0      0.0.0.0         255.255.0.0     U     0      0        0 docker0
192.168.178.0   0.0.0.0         255.255.255.0   U     203    0        0 eth1

我尝试了以下命令来删除网关:

代码语言:javascript
复制
ip route del default via 192.168.178.1 dev eth1
route del default gw  192.168.178.1
route del default gw  192.168.178.1 dev eth1
route del -net 0.0.0.0 gw 192.168.178.1 netmask 0.0.0.0 dev eth1
ip route del 0.0.0.0/0

它们都不管用。

如果我再次运行route -n,路线仍然在那里,我仍然可以到达互联网。

Syslog看起来也不错:

代码语言:javascript
复制
Dec  3 02:42:21 pi dhcpcd[474]: eth1: deleted default route via 192.168.178.1

Upadte:

我发现只有当我运行码头集装箱时才会出现这个问题,例如:

代码语言:javascript
复制
docker run --name 'foo' -itd alpine /bin/sh

如果容器被关闭,我可以删除网关。但出于某种原因,如果我用docker start foo启动容器,那么docker将重新创建默认网关。如果容器正在运行,则根本无法删除网关(见上文)。

有人知道这里发生了什么吗?如何在没有默认网关的情况下运行容器?Pi不应该有互联网连接。

EN

回答 1

Unix & Linux用户

发布于 2017-12-03 18:16:51

解决方案是通过向/etc/dhcpcd.conf中添加以下行将静态ip分配给Pi:

代码语言:javascript
复制
interface eth1
static ip_address=192.168.178.10

现在,我可以像预期的那样使用adddel作为默认网关,不管码头容器是否在运行。

票数 1
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/408448

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档