[问题解决] docker run 端口映射失败且无报错

在这里插入图片描述本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。

本作品 (李兆龙 博文, 由 李兆龙 创作),由 李兆龙 确认,转载请注明版权。

Docker版本:2:1.13.1-96.gitb2f74b2.tl2

问题描述

网上对于这个问题的已有回答在这一个时间点看来都没什么意义。

启动容器的时候进行端口映射,不报任何错误,但是所有端口都映射失败,如下显示:
在这里插入图片描述

在容器内部执行tcpdump -i bond1 port 24761可以看到宿主机可以收到数据包,但是容器内部收不到。

问题解决

其实花了点时间才定位到容器网络上。
在这里插入图片描述
可以看到这台机器并没有使用默认的 Bridge 模式,而是 使用 host 模式,其实问题能定位到这已经快解决了。

执行docker inspect mydatabase_1 | grep Net可以看到容器的默认网络模式是“Bridge”,而且此时我也注意到容器内部只有一个回环网卡而没有虚拟网卡。

此时两个解决方案,一个是添加 docker0 网桥,步骤可以参考[1]。要么启动的时候指定容器网络模式为host,即添加--net=host

问题的关键在于以 Bridge 模式 docker run的时候没有检测到网桥竟然没有任何报错,就这样连虚拟网卡也没有就启动了,这样这容器有啥用2333。这看上去是一个不折不扣的bug,也不知道新版本有没有修改。

参考:

  1. 云计算核心技术Docker教程:配置 docker0 网桥和自定义网桥

原文链接: https://www.cnblogs.com/lizhaolong/p/16437157.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍;

也有高质量的技术群,里面有嵌入式、搜广推等BAT大佬

    [问题解决] docker run 端口映射失败且无报错

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/396265

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年4月5日 下午2:14
下一篇 2023年4月5日 下午2:14

相关推荐