收起左侧

docker容器突然无法通过浏览器访问解决方法,和求助

2
回复
78
查看
[ 复制链接 ]

27

主题

41

回帖

0

牛值

初出茅庐

环境

  • 物理机安装飞牛
  • 手动升级docker到了 28.1.1

问题

突发问题

在一次部署完docker容器后(网络模式 bridge ),容器正常启动,但是浏览器无法访问,地址 http://192.168.13.3:5010

使用ssh登录NAS,使用命令 curl http://192.168.13.3:5010 有返回正常页面内容。

将容器的网络模式改成host之后,浏览器又可以正常访问

解决办法

修改docker的配置文件 /etc/docker/daemon.json中添加"iptables": false,,并重启docker。

本人对这个问题的认知和求助

通过查阅资料,得知docker部署容器后,都会自动向系统写入对应容器的iptables规则,出现这个问题,应该是docker没有自动写入对应的规则。

使用命令查看系统对应的规则,在部署新的容器后对比,的确没有发现有新的容器的规则。

上面我对这个问题的了解可能不准确。

本人对iptables规则一窍不通。

为什么会出现这个现象?

docker配置设置"iptables": false,后有没有其他的影响?

在不修改docker配置的情况下,除了手动写入iptables规则规则之外还有没有其他的办法?

有没有知道的大佬指导一下?

收藏
送赞
分享

3

主题

96

回帖

0

牛值

初出茅庐

Docker默认会自动管理iptables规则以实现端口转发和容器隔离。在bridge模式下,它会添加NAT规则将宿主机端口流量转发到容器内部。当你没有配置内核转发和防火墙的时候,就会出现上述莫名其妙的现象。。。

配置内核转发:net.ipv4.ip_forward=1 # 0是未开启

感谢,完美解决问题  详情 回复
4 天前

27

主题

41

回帖

0

牛值

初出茅庐

4 天前 楼主 显示全部楼层
yyywd 发表于 2025-6-11 01:02
Docker默认会自动管理iptables规则以实现端口转发和容器隔离。在bridge模式下,它会添加NAT规则将宿主机端 ...

感谢,完美解决问题
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则