我的应用程序有一个 Docker Compose 设置,特别关注名为 myhome-api-dev 的服务。但是,我在使用 GCP 虚拟机的外部 IP 访问此服务的端口 4001 时遇到了困难。尽管尝试使用 ufw 和其他方法打开端口,但我仍然面临连接问题。
这是我的 myhome-api-dev 服务的 Docker Compose 配置:
services:
myhome-api-dev:
container_name: myhome-api-dev
build:
context: ./
dockerfile: Dockerfile
restart: always
logging:
options:
max-size: "50m"
max-file: "3"
ports:
- "4001:4001"
labels:
- "traefik.enable=true"
- "traefik.http.routers.myhome-api.rule=Host(`$HOST`)"
- "traefik.http.routers.myhome-api.entrypoints=websecure"
- "traefik.http.routers.myhome-api.tls=true"
- "traefik.http.routers.myhome-api.tls.certresolver=myresolver"
- "traefik.http.services.myhome-api.loadbalancer.server.port=80"
env_file:
.env
volumes:
- "./src:/usr/src/app/src"
- "./types:/usr/src/app/types"
networks:
- docker_net
尽管配置了端口映射 (4001:4001)、启用 traefik 并确保防火墙设置 (ufw),但尝试使用外部 IP 访问端口 4001 失败。
以下是我迄今为止采取的步骤:
配置 Docker Compose 以公开端口 4001。 启用 traefik 以进行路由和负载平衡。 安装并配置 ufw 以使用入站规则打开端口 8000(也尝试了端口 4001)。 已验证 Docker 容器正在运行并且可以在内部访问。 但是,使用服务器的外部IP对端口4001进行外部访问会导致连接超时或拒绝。
任何有关如何排查和解决此连接问题的见解或建议将不胜感激。谢谢!
您很可能必须配置 GCP 防火墙以允许端口 4001 上的传入流量。