装Docker时请特别留意这个内核即容器中不能访问宿主机网络问题记录

网友投稿 292 2022-10-26

装Docker时请特别留意这个内核即容器中不能访问宿主机网络问题记录

内核版本:3.10.0-123.el7.x86_64。

是它是它就是它,又是一个小冤家.

自从发现了简单安装Docker的方式,想着就不用苦逼的一个一个下载rpm安装了...就可以一边哼着歌一边把原来一天才能干完的活压缩到半天了.也的确有几次是这么爽的,但今天爽歪了。

像往常一样把Docker服务安装好,把需要的镜像从外网传到内网再load,再启动redis,mysql等项目需要的容器。真是一顿操作猛如虎,还带丝般顺滑。可应该怎么也启动不起来,查看日志是说链接不上MySql.去MySql容器中查看mysql服务是正常的,刚才还新建了数据库表的。难道启动容器时忘记添加-p参数或者端口映射错误了?赶紧检查下:

tianlang@tianlang-VirtualBox:~$ docker psCONTAINER ID   IMAGE                             COMMAND                  CREATED        STATUS        PORTS                                                      NAMESd4217fc419fd   daocloud.io/library/redis:5.0.4   "docker-entrypoint.s…"   4 months ago   Up 23 hours   0.0.0.0:6379->6379/tcp                                     redis5855a5f7ec9a   mysql:8                           "docker-entrypoint.s…"   4 months ago   Up 23 hours   0.0.0.0:13306->3306/tcp                                    mysql8

从docker ps信息可以看到容器时做了端口映射了的,端口也是正确的。难道是端口冲突映射时失败了?赶紧再检查下:            tianlang@tianlang-VirtualBox:~$ sudo netstat -anp|grep 13306tcp        0      0 0.0.0.0:13306           0.0.0.0:*               LISTEN      1785/docker-proxy

从netstat输出信息看端口也的确是docker监听了的。就是这么奇怪,什么看上去都正常但就是不能在宿主机上访问容器中的mysql.只有mysql容器是这样的吗?很遗憾redis也存在同样的问题,就是这么不幸。

看来是docker服务有问题了,尝试了使用rpm包重装,重启iptables,关闭防火墙,关闭selinux等等,一顿折腾,连不通的还是连不通。几近要放弃的时候,找到了这篇博客:Docker网桥模式ping不通宿主机

博主刚开始也是一通折腾,后来确定是docker创建网桥时遇到了系统Bug,同时天涯踩Bug人啊!可以升级内核解决也可以使用brctl自己创建网桥分配给docker使用。

客户的机器升级内核不太可能了,只能尝试使用brctl创建网桥尝试最后一下子了.

1.关闭docker服务,添加网桥br0:

service docker stop //或者systemctl stop docker brctl addbr br0

2.为网桥添加IP

ip addr add 172.16.0.1/24 dev br0

3.启用网桥br0:

ip link set dev br0 up

4.修改docker默认网桥

在文件/etc/docker/daemon.json中添加:{"bridge":"br0"}

5.启动docker服务

service docker start

6.重新创建新的容器测试

新创建的容器可以正常使用了.删掉原来的容器重新创建,也都可以正常使用了。要是一开始就先测试下宿主机能不能正常连通docker容器就可以少做些无用功了,草率了!!

博主文章中还记载了调试iptables等方法,这里就不再赘述了!

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:基于 RocketMQ Prometheus Exporter 打造定制化 DevOps 平台
下一篇:Java设计模式之组合模式的示例详解
相关文章

 发表评论

暂时没有评论,来抢沙发吧~