发布于:2020-11-28  Docker  2条评论  3,051 views
 如需VPS代购、PHP开发、服务器运维等服务,请联系博主QQ:337003006

CentOS 8已经发行好长一段时间,为了尝鲜在Online独服上安装了CentOS 8系统,随之问题来了,发现Docker容器无法访问外网,而CentOS 7上则不存在这个问题。

排错分析

一开始怀疑是Docker DNS设置问题,导致Docker容器无法解析。遂修改配置文件/etc/docker/daemon.json设置DNS:

{
"dns" : [
"8.8.8.8",
"1.1.1.1"
]
}

修改后重启Docker服务,发现Docker容器还是无法联网。

解决办法

通过搜索了解到CentOS 8上防火墙发生了一些变化,防火墙原来使用iptables,现在使用nftables,猜测可能是转发引起的问题。通过搜索终于在Github上找到类似的情况:DNS Not Resolving under Network [CentOS8],解决办法为:

编辑firewalld配置文件/etc/firewalld/firewalld.conf,将:

FirewallBackend=nftables

修改为:

FirewallBackend=iptables

并重启Firewalld:systemctl restart firewalld.service

最后再重启下Docker:systemctl restart docker,验证问题解决。

总结

  1. 可通过修改/etc/docker/daemon.json设置Docker DNS
  2. CentOS 8防火墙由iptables变更为了nftables
  3. 可通过修改Firewalld配置文件/etc/firewalld/firewalld.confnftables换回iptables

解决CentOS 8 Docker容器无法上网的问题的更多相关文章

  1. centos安装docker容器

    centos安装docker容器 系统环境需求 docker要运行在centos7系统中,系统为64位机器上,内核最小版本在3.10以上 如果系统为centos6,后面有附带的安装方法 uname - ...

  2. 【解决】修改 docker 容器时间与宿主机不同

    修改 docker 容器时间 需求: 这几天,开发提了个需求 "测试需要模拟未来某天的业务,发现容器里面没有修改时间的权限",想在我们 k8s 集群上,调整容器时间 解决方案: 使 ...

  3. 解决netcore在docker容器中连接oracle报错(timezone region not found)

    错误提示: timezone region not found错误原因:docker 容器内时区不是 CST 导致解决办法:1.在dockerfile 中增加一下命令ENV TZ=Asia/Shang ...

  4. 解决CentOS虚拟机克隆后无法上网(网卡信息不一致)的问题

    一.问题描述 虚拟机克隆后,由于网卡信息不一致的问题,导致不能上网或者执行"sercice network restart"命令失败 [root@lyy 桌面]# ifconfig ...

  5. 解决mysql for docker容器报错:Authentication plugin 'caching_sha2_password' cannot be loaded

    为图方便,懒得在mac上安装mysql了,一个是管理不方便,第二个是为了方便多机器同步开发环境.就使用docker安装了. 拉取mysql镜像 docker pull mysql 运行mysql实例 ...

  6. 完美解决centos安装linux后不能上网的问题

    vi / etc /sysconfig/network-scripts/ifcfg-eth0 配置ip地址 DEVICE=eth0 HWADDR=00:0C:29:8C:F7:6F TYPE=Ethe ...

  7. Docker容器内连接宿主机即CentOS的Mysql服务器

    docker的宿主机是虚拟机下的CentOS 博主最近遇到一种情况,从服务器拷贝了一份数据库在宿主机Mysql服务器上,想要用本地的数据库测试自己的代码正确性,但是项目程序都是靠docker一键部署的 ...

  8. (转)外网如何访问docker容器

    借鉴:https://blog.csdn.net/lvshaorong/article/details/69950694 Docker容器非常轻量,系统开销非常少,比VMware或者VirtualBo ...

  9. Docker 容器技术

    前言: 之前感觉Docker是一种小虚拟机,docker和KVM虚拟机之间有什么区别.联系.可以应用在什么样的生产环境? 一.Docker是什么以及和KVM的区别 1.docker概念? Docker ...

随机推荐

  1. DNS、IP地址、子网掩码和默认网关

    一.DNS服务器 DNS是指:域名服务器(Domain Name Server).在Internet上域名与IP地址之间是一一对应的,域名虽然便于人们记忆,但机器之间只能互相认识IP地址,它们之间的转 ...

  2. CentOS下解压缩

    1 #gz 2 //压缩gz格式文件 3 gzip aa 4 //解压缩gz格式文件 5 gunzip -d aa.gz 6 //查看 7 Gunzip -l aa.gz 8 9 #bz 10 //压 ...

  3. UML第二次作业(代码互评)

    博客班级 https://edu.cnblogs.com/campus/fzzcxy/2018SE2/ 作业要求 https://edu.cnblogs.com/campus/fzzcxy/2018S ...

  4. 虚拟机下Ubuntu共享文件夹不能显示的一种解决方法

    原文链接:https://blog.csdn.net/huyangzhilin/article/details/70666937

  5. C语言printf()函数的格式化字符串

    原文链接:https://www.runoob.com/cprogramming/c-function-printf.html#include<stdio.h> #include<s ...

  6. 20191225_关于sql中exists和not exists

    exists n. 存在量词(exist的复数)v. 存在:出现:活着(exist的三单形式) 理所当然 not exists 就是不存在 那么 if  exists 就是表示它引导的子句有结果集返回 ...

  7. 快速理解Python中使用百分号占位符的字符串格式化方法中%s和%r的输出内容的区别

    <Python中使用百分号占位符的字符串格式化方法中%s和%r的输出内容有何不同?>老猿介绍了二者的区别,为了快速理解,老猿在此使用另外一种方式补充说明一下: 1.使用%r是调用objec ...

  8. 第9.7节 Python使用write函数写入文件内容

    一. 语法 write(data) data为要写入的数据,可以为字符串str类型,也可以是bytes类型. 返回值为实际写入的数据数,在写入数据为str类型时,该数据为实际写入的UNIOCODE字符 ...

  9. PyQt(Python+Qt)学习随笔:PyQt帮助文档导入assistant后离线查阅

    在按照<第15.6节 PyQt5安装与配置>完成PyQt5及PyQt5-tools的安装后,发现Qt Designer中的帮助不能使用,报错: 按照<PyQt学习随笔:Qt Desi ...

  10. SUCTF pythonigx

    0x00知识点 nginx配置 配置文件存放目录:/etc/nginx主配置文件:/etc/nginx/conf/nginx.conf管理脚本:/usr/lib64/systemd/system/ng ...