云服务器使用指南
常见问题
Docker容器无法访问网络及丢包严重问题

Docker容器无法访问网络及丢包严重问题

智算云技术支持 – 发表于:2023年06月19日 14:30:30

智算云平台上创建的云服务器,在系统内安装Docker容器后无法访问网络及丢包严重的问题,可参考如下方式解决:

1. 网络模式设置为 --network=bridge 时无法访问外网,网络模式设置为 --network=host 时可以访问外网。

  • 现象:测试 ping 8.8.8.8 bridge 模式无法ping通,host模式可以ping通。

  • 问题原因:此问题一般是容器镜像内未安装网络服务导致bridge模式分配不到IP,而host模式不需要分配IP 直接用的是主机的网络。

  • 解决方法:在容器镜像内安装网络服务工具(可以在host模式联网安装),执行如下命令进行安装

 
dpkg -i reset-authentication\_1.0.4-0\_amd64.deb
 
  • 安装后通过修改后的容器创建镜像。

  • 使用新镜像开启新容器后,可以正常访问外网。

2. 外网能通,但是无法联网下载软件,http或https网站无法访问。

  • 测试:
 
curl [https://www.baidu.com](https://www.baidu.com)
 
  • 一直卡住无输出。

  • ping 8.8.8.8 能通。

  • 在宿主机执行 ip addr 或者 ifconfig 查看网卡mtu值.

  • 发现网卡的mtu值默认是1442,而容器的网卡的mtu值默认是1500。

  • 修改Docker服务配置文件:
 
vim /usr/lib/systemd/system/docker.service
 
  • 配置文件如下位置,增加 --mtu=1442。

  • 执行如下命令重新加载配置文件并重启Docker容器生效:
 
systemctl daemon-reload
        
systemctl restart docker
 
  • 开启新容器恢复正常。