You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Docker Compose应用在DigitalOcean公网端口无法访问问题咨询

Docker Compose Web应用公网无法访问问题排查

问题描述

部署了一个Docker Compose Web应用,配置如下:

version: '3.3'

services: 
  app:
    image: xxxxxxxxxxxxx
    restart: always 
    network_mode: 'host'

注:因代码私有,镜像地址已隐藏。
应用启动后,服务器本地执行wget http://localhost:4004可正常访问,但通过公网IP:4004无法访问,端口不可用。已禁用Ubuntu服务器防火墙,尝试谷歌和Stack Overflow方案未解决。

排查与解决步骤

  • 检查应用监听的IP地址
    执行命令ss -tulpn | grep 4004,查看端口4004的监听地址:

    • 如果输出显示127.0.0.1:4004,说明应用仅绑定本地回环接口,公网无法访问。需要修改应用配置,让其监听0.0.0.0:4004(即所有网卡接口),之后重启容器。
    • 如果显示0.0.0.0:4004,则监听正常,排除应用本身的问题。
  • 验证云服务商安全组配置
    若服务器是云主机(如阿里云、AWS等),即使关闭了本地防火墙,云服务商的安全组仍会拦截公网流量。需要在云控制台的安全组规则中,添加入站规则:允许TCP协议的4004端口访问,来源设置为0.0.0.0/0(或指定需要访问的IP段)。

  • 确认Docker host网络配置生效

    1. 查看容器网络模式是否正确:执行docker inspect <容器ID或名称>,在NetworkSettings中确认NetworkMode为host。
    2. 若配置未生效,重启容器应用新配置:执行docker-compose down && docker-compose up -d。

内容的提问来源于stack exchange,提问作者lacaci3709

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 05:05:23