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

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

注:下面的方法是在容器内能ping通公网IP的解决方案,如果连公网IP都ping不通,那主机可能也上不了网(尝试ping 8.8.8.8)

1.使用--net:host选项

sudo docker run --net:host --name ubuntu_bash -i -t ubuntu:latest /bin/bash

2.使用--dns选项

sudo docker run --dns 8.8.8.8 --dns 8.8.4.4 --name ubuntu_bash -i -t ubuntu:latest /bin/bash

3.改dns server

vi /etc/default/docker
去掉“docker_OPTS="--dns 8.8.8.8 --dns 8.8.4.4"”前的#号

4.不用dnsmasq

vi /etc/NetworkManager/NetworkManager.conf
在dns=dnsmasq前加个#号注释掉

sudo restart network-manager
sudo restart docker

5.重建docker0网络

pkill docker
iptables -t nat -F
ifconfig docker0 down
brctl delbr docker0
docker -d

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

时间: 2025-01-06 17:43:01

Docker容器内不能联网的6种解决方案的相关文章

阿里云专有云平台docker容器内应用故障总结

阿里云专有云平台docker容器内应用检测失败故障总结 各位网友,各位同行,大家好! 今天在阿里云专有云平台中,遇到了一些关于docker容器内应用检测失败的问题,现把今天的解 觉问题的心得和解决思路,分享给大家: 问题描述:在docker容器中rhs服务应用显示检测失败:(这里我只说一个例子就好了,然后解 决的方法和思路说一下: 解决方案和思路:1.首先先查看一下检测失败的报警系统: 2.进入服务器的后端,使用ps -ef 检查服务的进程,是否已经存在,如果不存在, 希,可以将其服务的应用程序

docker容器内应用检测失败总结

docker容器内应用检测失败故障总结 各位网友,各位同行大家: 今天在云平台中遇到了一个这样一个问题,在云平台上面docker容器中的应用,在监控客户端 中,显示应用检测失败的问题:以下是经常遇到的几个应用检测失败的常见解决办法如下所示: 问题描述:rds产品  docker容器中的应用检测失败:(备注:宿主机运行正常) 解决思路:1.一般情况下如果应用服务检测失败的话,首先查看一下这个应用的进程是否还在 可以使用命令ps -ef | grep +服务名称:查看一下服务的运行状态.查看一下服务

centos:解决docker容器内挂载目录无权限 ls: cannot open directory .: Permission denied

docker运行一个容器后,将主机中当前目录下的文件夹挂载到容器的文件夹后 进入到docker容器内对应的挂载目录中,运行命令ls后提示: ls: cannot open directory .: Permission denied 解决: 在docker run一个容器时,加上 --privileged=true 给容器加特权即可. 原文地址:https://www.cnblogs.com/UniqueColor/p/9318815.html

3. docker容器内信息获取、命令的执行、容器的导入和导出

一.依附容器 依附操作attach通常用在由docker start或者docker restart启动的交互型容器中.由于docker start启动的交互型容器并没有具体终端可以依附,而容器本身是可以接收用户交互的,这时就需要通过attach命令来将终端依附到容器上. docker start docker_run:先启动docker_run容器. 启动后docker ps可以看到启动的容器,这是我们发现客户端显示的宿主机([[email protected] ~]#). 执行docker

docker容器实现数据持久化的两种方式及其区别

前言 这篇博文是我对docker实现数据持久化几种方式的特征进行一个总结. 在docker中,它的存储文件系统是在dockerhost上原有的xfs或ext4架设了一层文件系统:overlay2(将此行重点标注的原因就是我在面试中被问到过:docker使用的是什么文件系统?),通过docker info命令可以查看出主机上docker相关的信息,包括支持的网络类型.系统版本.内核版本.docker主机的cpu.内存等信息.如下: 在docker中实现数据持久化有两种方式:Bind mount和D

Docker学习笔记(4-3)Docker容器内部署静态网站

设置容器的端口映射 如何访问容器的80端口<--设置端口映射 -P 为所有端口映射 -p 指定映射端口 docker run -p 80 -i -t ubuntu /bin/bash docker run -p 8080:80 -i -t ubuntu /bin/bash docker run -p 0.0.0.0:80 -i -t ubuntu /bin/bash docker run -p 0.0.0.0:8080:80 -i -t ubuntu /bin/bash #创建映射80端口的交互

[笔记]使用Go语言Redigo包在Docker容器内连接Redis容器的方法

Docker容器之间的连接可以带来不少方便,下面记录下如何在自己容器内通过环境变量连接与之连接的Redis容器的方法. 先起一个Redis的Docker容器,命名为 redis,再起一个自己的Docker容器,使用"--link redis:redis"方式与redis容器连接. 在自己的容器内部,会有对应的环境变量,其中这里用的就是 REDIS_PORT = tcp://172.17.0.89:6379. 将其分拆为 tcp 和 172.17.0.89:6379,作为参数传入redi

docker 容器内服务自启动

centos6/7 有区别先说6 centos6: 方式一:rc.local + 容器内的启动脚本 1.chkconfig docker on #docker开机自启动2.[[email protected] yum.repos.d]# tail -1 /etc/rc.local #开机自启动容器 docker restart test 3.在容器写一个启动服务的脚本 放到 rc.local,开机直接run这个脚本 方式二:rc.local + dockerfile centos7: 启动方法都

Docker容器内网通过独立IP直接访问的方法

Docker官方推荐我们通过端口映射的方式把Docker容器的服务提供给宿主机或者局域网其他容器使用.一般过程是: 1.Docker进程通过监听宿主机的某个端口,将该端口的数据包发送给Docker容器 2.宿主机可以打开防火墙让局域网其他设备通过访问宿主机的端口进而访问docker的端口 但在实际使用中并不是很方便. 以下在win10环境中队DockerDocker容器通过独立IP暴露给局域网的方法进行记录. Docker的默认启动方式中,会产生一块虚拟网卡,然后容器内自行分配单独的网卡和IP.