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

Google Cloud VM上Docker容器运行正常但无法访问网站及子域名配置问题

问题排查与解决方案

一、端口访问失败的排查与处理

1. 检查Docker Compose端口映射配置

确保你的docker-compose.yml中frontend服务的端口映射是主机端口:容器端口的格式,比如:

services:
  frontend:
    # 其他配置...
    ports:
      - "3000:3000"  # 左侧是主机端口,右侧是容器内服务监听的端口

如果只写了3000,相当于仅暴露容器内部端口,未映射到主机,外部无法访问。

2. 确认容器内服务的监听地址

进入frontend容器,检查服务是否绑定了0.0.0.0(允许外部访问),而非127.0.0.1(仅容器内部可访问):

# 进入容器(替换为你的frontend容器名)
docker exec -it <frontend-container-name> /bin/bash
# 检查端口监听情况
netstat -tulpn | grep 3000

如果输出地址是127.0.0.1:3000,需修改前端服务配置,让它绑定0.0.0.0(不同框架配置方式不同:比如React可在package.json启动命令中加HOST=0.0.0.0,Vue可修改配置文件中devServer的host字段)。

3. 验证Google Cloud防火墙规则

除了实例的HTTP/HTTPS流量,必须单独创建允许3000端口入站的规则:

  • 登录Google Cloud控制台 → 进入「VPC网络」→「防火墙规则」
  • 点击「创建防火墙规则」:
    • 名称:允许3000端口入站
    • 目标:指定的目标实例(选择你的micro e2实例)
    • 来源IP范围:0.0.0.0/0(允许所有外部IP访问)
    • 协议和端口:选择「tcp」,填写3000
    • 动作:允许

4. 是否需要改为80端口?

可以改,80是HTTP默认端口,访问时无需加:3000,更友好。操作步骤:

  • 修改docker-compose.yml的端口映射为:
    ports:
      - "80:3000"  # 主机80端口映射到容器3000端口
    
  • 确认主机80端口未被其他服务占用(比如nginx、apache),可使用netstat -tulpn | grep 80检查,若有冲突先停止占用服务。
  • 更新防火墙规则,允许80端口入站(若之前已开启实例的HTTP流量,通常已包含80端口,可直接复用)。

二、绑定Namecheap子域名的步骤

1. 设置Google Cloud实例静态IP

实例默认是动态IP,重启会变化,必须设置为静态:

  • 进入Google Cloud控制台 →「虚拟机实例」→ 选择你的实例
  • 点击「更多操作」→「修改」→ 找到「网络接口」→「外部IP」
  • 点击下拉框,选择「创建静态IP地址」,设置名称后保存,记录下这个静态IP。

2. 在Namecheap后台添加DNS记录

  • 登录Namecheap账户 → 进入「Domain List」→ 找到你的域名,点击「Manage」
  • 切换到「Advanced DNS」标签页
  • 添加一条A记录:
    • 主机名:填写你的子域名(比如sub,对应sub.yourdomain.com)
    • 记录值:填写刚才设置的Google Cloud静态外部IP
    • TTL:选择「Automatic」或300秒
  • 保存配置,等待DNS生效(通常需要5-15分钟)。

3. 可选:配置HTTPS(如果需要)

如果要让子域名支持HTTPS,可以用Certbot申请免费SSL证书,步骤如下:

  • 在实例上安装Certbot:
    sudo apt update && sudo apt install certbot
    
  • 申请证书(替换为你的子域名):
    sudo certbot certonly --standalone -d sub.yourdomain.com
    
  • 配置前端服务使用证书(或用Nginx反向代理,将80端口转发到3000,并配置SSL)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 00:42:47