容器无法访问外部网络问题

[root@walker-1 tensorflow]# docker run --rm -it 285396d0a019 sh
WARNING: IPv4 forwarding is disabled. Networking will not work.
sh-4.2#

通过docker run 启动容器后,提示

WARNING : IPv4 forwarding is disabled. Networking will not work.

同时在容器中,无法访问外部网络。

根据提示很容易看到,主机上的报文转发被禁止了。导致容器报文被丢弃。

默认情况下,通过docker run 启动的容器其网络模式为 bridge。容器将docker0 网桥作为网关,通过报文转发和主机路由实现对外部网络访问。

出于安全考虑,Linux系统默认是禁止数据包转发的。所谓转发即当主机拥有多于一块的网卡时,其中一块收到数据包,根据数据包的目的ip地址将数据包发往本机另一块网卡,该网卡根据路由表继续发送数据包。

[root@walker-1 tensorflow]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         172.16.6.254    0.0.0.0         UG    0      0        0 eth0
172.16.6.0      0.0.0.0         255.255.255.0   U     0      0        0 eth0
172.17.0.0      0.0.0.0         255.255.0.0     U     0      0        0 docker0

通过以下操作可解决上述问题:

[root@walker-1 tensorflow]# echo 1 > /proc/sys/net/ipv4/ip_forward

或者修改 /etc/sysctl.conf, 添加

net.ipv4.ip_forward=1

为了使修改生效,执行:

[root@walker-1 tensorflow]# sysctl -p
  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值