项目场景:

提示:docker容器无法访问宿主机报出 No route to host:
例如:防火墙环境下,docker容器无法访问宿主机的其他应用端口


原因分析:

在进行docker部署的时候我们采用的是bridge网桥的模式。

启动docker时,docker进程会创建一个名为docker0的虚拟网桥,用于宿主机与容器之间的通信。当启动一个docker容器时,docker容器将会附加到虚拟网桥上,容器内的报文通过docker0向外转发。

如果docker容器访问宿主机,那么docker0网桥将报文直接转发到本机,报文的源地址是docker0网段的地址。而如果docker容器访问宿主机以外的机器,docker的SNAT网桥会将报文的源地址转换为宿主机的地址,通过宿主机的网卡向外发送。

因此,当docker容器访问宿主机时,如果宿主机服务端口会被防火墙拦截,从而无法连通宿主机,出现No route to host的错误。


解决方案:

linux宿主机依次执行命令

  • 配置docker0服务到受信任连接
nmcli connection modify docker0 connection.zone trusted
  • 停止NetworkManager(检测网络、自动连接网络的程序)服务
systemctl stop NetworkManager.service
  • 修改docker网络接口为内部区域(永久)
firewall-cmd --permanent --zone=trusted --change-interface=docker0
  • 启动NetworkManager(检测网络、自动连接网络的程序)服务
systemctl start NetworkManager.service
  • 配置docker0服务到受信任连接
nmcli connection modify docker0 connection.zone trusted
  • 重启docker服务
systemctl restart docker.service

关注Github:1/2极客

关注博客:御前提笔小书童

关注网站:开发者的花花世界

关注公众号:开发者的花花世界

docker容器无法访问宿主机报出 No route to host相关推荐

  1. 17.Docker 容器时间与宿主机同步

    Docker容器时间与宿主机同步 BY 赫墨拉 · PUBLISHED 2018年7月10日 · UPDATED 2019年6月10日 问题描述: 在我们平时使用docker,运行我们的应用的时候,访 ...

  2. 【docker】使用云服务器运行docker时无法访问宿主机的映射端口

    导语:这几天在学docker,在学到容器映射端口时,总是无法访问到宿主机的对应端口,这就很纳闷了,IP地址和端口号都是对应的,eth0的IP地址加上容器外端口.不过想了一下,唯一区别是我在云服务器上跑 ...

  3. docker 容器内访问宿主ip

    在生产环境下难免会在容器内访问宿主服务,此时只需要使用host.docker.internal即可,如ping host.docker.internal输出如下 PING host.docker.in ...

  4. docker容器正常启动宿主机却无法正常访问

    问题:重新开启linux虚拟机后有时候可以访问有时候不可以访问docker容器或者完全无法访问 原因:linux内核版本和docker版本不兼容 解决:更新linux内核版本 yum update - ...

  5. Docker容器时间与宿主机同步

    转载地址:http://www.louisvv.com/archives/1716.html 问题描述: 在我们平时使用docker,运行我们的应用的时候,访问应用页面的时间与现在相差8个小时 无法结 ...

  6. docker容器端口影射宿主机端口

    #将容器的8080端口映射宿主机端口8080 –name:给容器起的名称 docker run -d -p 8080:8080 --name="tomcat7" -id 1130e ...

  7. Docker容器时间与宿主机不一致?3个解决方案

    目录 前言 更新历史 问题描述 解决方案 docker run 添加时间参数 Dockerfile解决方案 docker-compose解决方案 宿主机直接执行命令给某个容器同步时间 异常问题 Doc ...

  8. 【Docker】docker容器内获取宿主机的信息和执行宿主机的脚本

    思路 我们可以通过在容器内远程连接宿主机,然后对宿主机进行操作. 使用 sshpass (我的是CentOS 7.9环境) 1.安装sshpass apt-get update //更新一下 apt- ...

  9. docker容器时区与宿主机不一致的解决方法

    一般情况下,我们的宿主机服务器的时区都是在东八区,而docker容器里却是在零时区.这样就导致了时间差了8个小时,所以需要把容器的时间也设置成东八区. 在dockerfile中的设置如下: RUN l ...

最新文章

  1. 重磅 | 2018年清华大学研究生新生大数据
  2. c#_限制TextBox输入类型仅可为“-” “.” 数字
  3. Google的深度学习强在哪?谷歌首席科学家说了这些奇妙特性
  4. python实现冒泡排序算法的非递归版本_python排序算法速度比较:快速排序,归并排序,冒泡排序...
  5. ASP.NET MVC下使用AngularJs语言(三):ng-options
  6. python中用于输出内容到终端的函数是_python执行linux shell管道输出内容
  7. ubuntu下执行umount无法卸载目录
  8. php斐波那契数列循环,两种php实现斐波那契数列的方法
  9. php pos系统,Linux下的十大开源POS系统软件
  10. jquery版本问题
  11. 客户画像、精准营销与数字化运营
  12. 贪心科技SkipGram 2020.4.3笔记
  13. Excel一点击编辑就程序卡死
  14. 订单减库存 java_高并发场景-订单库存防止超卖
  15. 微信自定义链接分享网页(设置标题+简介+图片)
  16. android微信解析失败,为什么我的手机安装不上微信,一安装就说解析包错误
  17. mac打开.caj格式文件
  18. IDEA使用单元测试对数据库的insert语句进行测试,出现添加多条问题的解决方案
  19. 装修甲醛怎么办?自制小程序监控的甲醛检测仪
  20. 虚拟主机cPanel面板查看服务器的访问日志

热门文章

  1. 孤尽T31项目Day3
  2. 迷你英雄无限服务器没了吗,迷你英雄:无限无法连接服务器是什么原因
  3. 从时间管理到管理情绪,这些自我管理的技巧你知道几个?
  4. NUMECA/FineTurbo计算中自动调用CFview实时数据处理
  5. 华为数通笔记-IPV6基础
  6. React控制台警告Warning: ReactDOM.render is no longer supported in React 18. Use createRoot instead. Until
  7. 博图买什么样配置的笔记本_西门子PLC编程软件-博图软件用什么配置的电脑最好?...
  8. el-table表格操作列合并行
  9. 嵌入式 ADC使用手册完整版 (188977万字)(附源码详细篇)
  10. 【备忘】es统计用户留存数据,公式都一样,语句和mysql区别很大