如何解决docker容器无法ping外网的问题

服务器

这篇文章将为大家详细讲解有关如何解决docker容器无法ping外网的问题,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

今天在docker搭建redis环境的时候,发现yum拉取不到资源,上不到网,报了如下错误:

http://mirrors.aliyun.com/centos/6.10/extras/x86_64/Packages/epel-release-6-8.noarch.rpm: [Errno 14] PYCURL ERROR 6 – “Couldn’t resolve host ‘mirrors.aliyun.com'”
Trying other mirror.
http://mirrors.neusoft.edu.cn/centos/6.10/extras/x86_64/Packages/epel-release-6-8.noarch.rpm: [Errno 14] PYCURL ERROR 6 – “Couldn’t resolve host ‘mirrors.neusoft.edu.cn'”
Trying other mirror.
http://mirrors.nwsuaf.edu.cn/centos/6.10/extras/x86_64/Packages/epel-release-6-8.noarch.rpm: [Errno 14] PYCURL ERROR 6 – “Couldn’t resolve host ‘mirrors.nwsuaf.edu.cn'”
Trying other mirror.
http://mirrors.shu.edu.cn/centos/6.10/extras/x86_64/Packages/epel-release-6-8.noarch.rpm: [Errno 14] PYCURL ERROR 6 – “Couldn’t resolve host ‘mirrors.shu.edu.cn'”
Trying other mirror.
http://mirrors.sohu.com/centos/6.10/extras/x86_64/Packages/epel-release-6-8.noarch.rpm: [Errno 14] PYCURL ERROR 6 – “Couldn’t resolve host ‘mirrors.sohu.com'”
Trying other mirror.
http://mirrors.tuna.tsinghua.edu.cn/centos/6.10/extras/x86_64/Packages/epel-release-6-8.noarch.rpm: [Errno 14] PYCURL ERROR 6 – “Couldn’t resolve host ‘mirrors.tuna.tsinghua.edu.cn'”
Trying other mirror.
http://mirrors.zju.edu.cn/centos/6.10/extras/x86_64/Packages/epel-release-6-8.noarch.rpm: [Errno 14] PYCURL ERROR 6 – “Couldn’t resolve host ‘mirrors.zju.edu.cn'”
Trying other mirror.

测试wget

wget http://mirrors.163.com/.help/CentOS6-Base-163.repo

结果报错

unknown host mirrors.163.com

测试ping

在容器内部

ping www.baidu.com

结果还是失败

ping: unknown host www.baidu.com

多开一个终端,进入主机(不是进入容器),进行ping命令测试发现是OK的,基本可以确定是docker的问题了,而不是网络问题

解决方法

停止所有容器,重启docker

service docker restart

内容扩展

Docker容器内不能联网的6种解决方案

1.使用–net:host选项

2.使用–dns选项

3.改dns server

4.不用dnsmasq

5.重建docker0网络

6.直接在docker内修改/etc/hosts

关于“如何解决docker容器无法ping外网的问题”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

Published by

风君子

独自遨游何稽首 揭天掀地慰生平

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注