Docker容器没网的解决方法

Docker容器没网解决方法

借鉴我师兄的一种解决方法。用这种方法还是没网,原因后面分析。

After A LOT of time trying to solve this issue I think I finally
found a solution in an ebook I found on the internet.

Here's the steps I took to solve the issue:

$ sudo service docker stop
$ sudo nano /etc/default/docker

Edit the file and uncomment the DOCKER_OPTS option modifying it to somthing like this:
DOCKER_OPTS="--dns 8.8.8.8 --dns 8.8.4.4 --iptables=false --ip-forward=false"

$ sudo su
$ echo 1 > /proc/sys/net/ipv4/ip_forward
// Add the IP range you want to have access to the internet
$ iptables -t nat -A POSTROUTING -s 172.17.0.0/16 -j MASQUERADE
$ service docker restart
$ exit

Now hopefully your containers have access to the internet again.

I hope to help someone :)
转载自github:
https://github.com/moby/moby/issues/36151#issuecomment-630548256

5G核心网教程


原因分析:

上面教程中有个下面这个指令

// Add the IP range you want to have access to the internet
$ iptables -t nat -A POSTROUTING -s 172.17.0.0/16 -j MASQUERADE

这个是添加整个容器网段,这还不够。


解决方案:

因为上面这个是整个docker容器的网段
需要给5G核心网分配网段

按照上述教程一直运行命令行,直到运行到添加ip网段,我们先查看容器ip网段再用下面方法添加

// 先启动核心网,查看核心网ip(注意是docker-oai)
$ ifconfig

在这里插入图片描述

//我的是192.168.70.129,掩码是26
//先运行下面这行命令
$ iptables -t nat -A POSTROUTING -s 172.17.0.0/16 -j MASQUERADE
//再运行下面这个,添加核心网网段
$ iptables -t nat -A POSTROUTING -s 192.168.70.129/26 -j MASQUERADE

剩下的命令接着运行

接下来就可以检查是否有网了:先进入容器,然后ping或者apt update一下看看有没有网。

$ docker exec -it oai-amf bash
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值