解决Docker端口映射无法访问问题

之前收到腾讯云提醒,服务器要到期了,由于之前是使用学生机 1 元 1 个月的机器,资格到期了也就无法续费了,所以又重新购买了一台机器

使用腾讯云快照创建了自定义镜像更换了服务器,一顿操作猛如虎,站点和其他服务都是正常的,只有一个 docker 的服务端口不能访问,研究了半天,最终找到了解决方案

于是乎本文记录一下解决方案,以及尝试过的方法

问题的现象是:

1. 在宿主机 curl 对应的端口,处于阻塞状态,无响应

curl 127.0.0.1:8080

2. 在镜像内 curl 原端口正常,curl 百度失败

curl 127.0.0.1:80 curl www.baidu.com

这里也得到了一个信息是不能访问外网,以为是服务问题,又创建了一个新的测试容器结果还是一样

使用 docker port 查看输出是正常的

$ docker port a7dafeccf24e 3012/tcp -> 0.0.0.0:3012 80/tcp -> 0.0.0.0:8080

重启 docker 服务也试过了

systemctl restart docker

首先想到的是防火墙,直接进行关闭

systemctl stop firewalld

关闭了也是不行的,安全组是复用以前的机器,应该是没有问题的

然后让我尝试了查看 ip_forward

cat /proc/sys/net/ipv4/ip_forward

结果居然是 0,IP 转发需要进行开启,执行以下命令

echo 1 > /proc/sys/net/ipv4/ip_forward

打算放弃了突然翻到了一篇知乎文章 阿里云 ECS 的 Docker 为什么无法端口映射? 中的这个回答

阿里云的内网eth0 网段正好跟Docker 的虚拟网卡都是 172 网段,有冲突.

修改 /etc/docker/daemon.json,加入一行 "bip": "192.168.1.5/24",,然后再次查看 ifconfig,已经变成了 192 网段了

重启 docker 服务,curl 尝试正常,完美解决问题,喜大普奔

 

转自:https://cloud.tencent.com/developer/beta/article/1768097

 


__EOF__

本文作者只为
本文链接https://www.cnblogs.com/gzwTestblog/p/17378552.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   只为。  阅读(744)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端
点击右上角即可分享
微信分享提示