解决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外网的问题的详细内容,更多关于docker容器无法ping外网的资料请关注我们其它相关文章!

(0)

相关推荐

  • 解决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

  • docker 突然不能被外网访问的解决方案

    根据大佬们的方法,找到了原因 sysctl net.ipv4.ip_forward. 腾讯云提示修复漏洞,执行完他们的脚本, ip转发就被关掉了. 后来研究了一下,可以通过 docker info 找到问题所在. 并且可以查看到docker给出一警告 解决方法: sudo vim /etc/sysctl.conf 修改 ,保存 , 然后 systemctl restart network 或者 sysctl -w net.ipv4.ip_forward=1 但是这样处理可能服务器重启以后就失效了

  • docker容器通过ping直接运行获取公网IP操作

    通过容器获取本机的公网ip 可以用本地IP 多服务注册中心 把命令改居ping 执行可以拿到不同的服务器信息 public static String getIfconfigIP() { BufferedReader in = null; String outline = ""; // timeOut window为ms linux 为s Runtime r = Runtime.getRuntime(); // 将要执行的ping命令,此命令是windows格式的命令 String p

  • 解决Docker容器没有vim命令的方法

    发现问题 今天在尝试修改Docker容器内文件时, 发现容器内并没有vim命令, 返回了: vim my.cnf bash: vim: command not found 本篇文章就来记录下如何解决此问题. 解决方案 仍然在docker容器内部, 首先运行以下命令, 并耐心等待一会儿: apt-get update 完成后运行: apt-get install vim 等待安装完成后, 运行以下命令, 验证是否安装成功: vim 如果返回了类似以下界面则证明vim安装成功: VIM安装成功返回

  • 解决docker容器启动后马上退出的问题

    最近在看docker如何让容器在启动时直接运行某些进程,后来发现Dockerfile可以在容器启动的时候指定容器运行命令. CMD指定,但是每个Dockerfile只能有一条CMD指令,如果指定了多条CMD指定,只有最后一条会被执行. 于是就想了一个办法,在写了一个脚本,在脚本里面启动多个进程,在Dockerfile里运行这个脚本. 最后证明这个方法是可行的,在实验过程中遇到一个问题,容器启动后会马上停止. 经查阅资料: Docker容器同时只能管理一个进程,如果这个进程退出那么容器也就退出了,

  • 如何解决docker容器启动失败

    问题:电脑重启之后,docker里面的mysql容器重启不了,不知道是什么原因 上面的步骤:如果sudo docker start name 能重新启动,也就是输入:docker ps 能看到自己所需要的服务已经开启,那就不需要再进行下面的步骤了,如果刚好像上面那样,那就接着看下文: 解决办法:删除启动不了的容器,然后再重新运行镜像. 注意此时的容器名已经变为mysql了,为关闭状态,再运行镜像时还是运行不了,但此时再启动镜像时就可以启动了 内容补充 1.查看docker占用的挂载点 cat /

  • 详解如何解决docker容器无法通过IP访问宿主机问题

    问题起源 在使用 docker 的过程中我不幸需要在 docker 容器中访问宿主机的 80 端口, 而这个 80 端口是另外一个容器 8080 端口映射出去的. 当我在容器里通过 docker 的网桥 172.17.0.1 访问宿主机时, 居然发现: curl: (7) Failed to connect to 172.17.0.1 port 80: No route to host 查找问题原因 可以确定的是容器与宿主机是有网络连接的, 因为可以在容器内部通过 172.17.0.1 Ping

  • 解决docker容器重启之后/etc下某些配置文件被重置的问题

    1. /etc/hosts, /etc/resolv.conf和/etc/hostname容器中的这三个文件不存在于镜像,而是存在于于/var/lib/docker/containers/,在启动容器的时候,通过mount的形式将这些文件挂载到容器内部. 因此,如果在容器中修改这些文件的话,修改部分不会存在于容器的top layer,而是直接写入这三个物理文件中. 2.为什么重启后修改内容不存在了? 原因是:每次Docker在启动容器的时候,通过重新构建新的/etc/hosts文件,这又是为什么

  • 解决docker 容器设置中文语言包出现的问题

    如果在Docker 中采用 docker search centos 采用 docker pull docker.io/centos 下载基础镜像 这个镜像是不支持中文的,可以采用docker attach 容器ID进入容器后采用"locale"查看 可以采用"locale -a" 查看系统语言包,会发现没有中文包 解决方案: 1.yum install kde-l10n-Chinese -y 安装语言包(针对centos 7) 2.yum reinstall gl

  • 解决docker容器与宿主机相差8小时的问题

    使用docker-compose部署时,在输出的日志以及相关事件校验及输出时,导致事件与现实相差8小时. 排查问题: 1.查看宿主机时间: # 查看时间 date Wed Sep 29 11:12:44 CST 2021 # 查看时区 date -R Wed, 29 Sep 2021 11:13:34 +0800 2.进入容器查看时间 # 查看所有容器 docker ps -a # 进入容器 docker eec -it [容器ID] /bin/bash # 查看时间 date 此时看到的宿主机

随机推荐