docker-compose暴露端口,但其他主机无法访问问题。

 问题描述:docker-compose暴露端口,但其他主机无法访问问题。

排障思路:

  • 执行命令:ss -antlp | grep 80,发现端口正常监听0.0.0.0:80(ps:如果是127.0.0.1:80则只能本机访问
  • 同区域网段服务器执行telnet又不通。
  • 本机执行curl -v localhost能正常显示nginx页面。
  • 重启该服务 docker-compose restart nginx后,telnet测试结果还是不行。
  • 执行systemctl status firewall,查看防火墙状态为关闭。
  • 检查 SELinux 配置为关闭
version: '3'

services:
  nginx:
    container_name: nginx
    image: docker.cnb.cool/sre-johp/dockerhub/nginx:1.26.2
    restart: always
    ports:
      - "80:80"
    volumes:
      - ./nginx.conf:/etc/nginx/nginx.conf:ro
    deploy:
      resources:
        limits:
          memory: 1000M
        reservations:
          memory: 1000M

解决方案:( 请自行判断使用,以下命令可能会影响其他正常规则使用!!!

# 清除主机防火墙规则;(慎用,个人情况不一样
iptables -F 

# 重启docker
systemctl restart docker


or

# /etc/docker/daemon.json中加入以下内容;(建议方案,需要手动维护iptables规则
{
  "iptables": false
}

# 重启docker
systemctl restart docker

问题原因:

  • Docker 在启动时修改了防火墙规则,导致端口映射不正确或被阻塞。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值