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

Traefik无法路由流量至Docker Compose部署的wallet-service问题

Traefik路由Docker容器流量失败问题

主机可通过curl http://localhost:3000直接访问wallet-service容器,但Traefik尝试连接Docker内部IP192.168.64.4:3000而非映射的主机端口,导致流量无法正常路由。

已尝试的操作

  • 配置Traefik标签:指定服务内部端口,确认服务与Traefik处于同一Docker网络
  • 验证服务可访问性:本地curl http://localhost:3000能得到正确响应,确认wallet-service监听0.0.0.0接口
  • 检查Traefik日志:启用调试日志与访问日志,观察到Traefik尝试连接192.168.64.4:3000

尽管进行了上述操作,Traefik仍无法将流量路由至wallet-service。

Docker Compose配置

version: '3.8'

services:
  wallet-service:
    ports:
      - '3000:3000'
    labels:
      - 'traefik.enable=true'
      - 'traefik.http.routers.wallet-service.rule=Host(`${DOMAIN}`)'
      - 'traefik.http.routers.wallet-service.entrypoints=websecure'
      - 'traefik.http.routers.wallet-service.tls.certresolver=myresolver'
      - 'traefik.http.services.wallet-service.loadbalancer.server.port=3000'
    networks:
      - internal-network
      - traefik-public

  caller-service:
    ports:
      - '3001:3001'
    labels:
      - 'traefik.enable=true'
      - 'traefik.http.routers.caller-service.rule=Host(`caller.${DOMAIN}`)'
      - 'traefik.http.routers.caller-service.entrypoints=websecure'
      - 'traefik.http.routers.caller-service.tls.certresolver=myresolver'
    networks:
      - internal-network
      - traefik-public

  postgres:
    image: postgres:13
    ports:
      - '5432:5432'
    networks:
      - internal-network

  rabbitmq:
    image: rabbitmq:3-management
    ports:
      - '5672:5672'
      - '15672:15672'
    labels:
      - 'traefik.enable=true'
      - 'traefik.http.routers.rabbitmq.rule=Host(`rabbitmq.${DOMAIN}`)'
      - 'traefik.http.routers.rabbitmq.entrypoints=websecure'
      - 'traefik.http.routers.rabbitmq.tls.certresolver=myresolver'
    networks:
      - internal-network
      - traefik-public

volumes:
  postgres-data:
    name: wallet-postgres-data

networks:
  internal-network:
    driver: bridge
  traefik-public:
    external: true

Traefik配置

services:
  traefik:
    image: traefik:v2.9
    command:
      - "--api=true"
      - "--providers.docker=true"
      - "--entrypoints.web.address=:80"
      - "--entrypoints.websecure.address=:443"
      - "--certificatesresolvers.myresolver.acme.tlschallenge=true"
      - "--certificatesresolvers.myresolver.acme.email=sesto@post.com"
      - "--certificatesresolvers.myresolver.acme.storage=/letsencrypt/acme.json"
      - "--log.level=DEBUG" # Increase log verbosity
      - "--accesslog=true" # Enable access logs
      - "--accesslog.filepath=/var/log/traefik/access.log"
      - "--log.filepath=/var/log/traefik/traefik.log"
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - "/var/run/docker.sock:/var/run/docker.sock:ro"
      - "./letsencrypt:/letsencrypt"
      - "./logs:/var/log/traefik" # Mount a volume for logs
    networks:
      - traefik-public

networks:
  traefik-public:
    external: true
    name: traefik-public

相关日志

访问公网域名时,Traefik尝试连接192.168.64.4:3000,该地址与主机端口映射不符。但主机本地直接访问可获得预期响应:

curl http://localhost:3000
Service is running!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 12:17:11