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

Mac M2的Docker Desktop中Traefik与whoami容器无法访问问题排查

部署Traefik与whoami后无法访问的配置遗漏排查

1. 未配置Traefik端口映射

Traefik需要将容器的80(HTTP入口)和8080(仪表盘)端口映射到宿主机,否则宿主机无法通过localhost访问。需在docker-compose.yml的traefik服务中添加:

ports:
  - "80:80"
  - "8080:8080"

2. 未启用Traefik API与仪表盘

默认情况下Traefik的仪表盘和API是关闭的,需通过静态配置开启。在traefik服务的command参数中添加:

command:
  - "--api.insecure=true"  # 本地测试允许无HTTPS访问仪表盘
  - "--api.dashboard=true"
  - "--providers.docker=true"
  - "--providers.docker.exposedbydefault=false"  # 仅处理显式启用的容器

3. whoami容器缺少Traefik路由标签

Traefik不会自动发现未配置标签的容器,需给whoami服务添加路由规则标签:

labels:
  - "traefik.enable=true"
  - "traefik.http.routers.whoami.rule=Host(`whoami.docker.localhost`)"
  - "traefik.http.routers.whoami.entrypoints=web"

4. 未配置共享Docker网络

Traefik和whoami必须处于同一Docker网络才能实现服务发现与请求转发。需在docker-compose.yml中定义并使用自定义网络:

networks:
  traefik-net:
    driver: bridge

services:
  traefik:
    networks:
      - traefik-net
  whoami:
    networks:
      - traefik-net

5. 本地DNS解析异常

whoami.docker.localhost依赖本地DNS解析,若Docker Desktop自动解析失效,可手动在/etc/hosts中添加:

127.0.0.1 whoami.docker.localhost

同时检查Docker Desktop设置,确保DNS服务已启用。

6. 未指定arm64平台镜像

M2芯片为armv8架构,若未指定平台可能拉取amd64镜像导致隐性运行问题。需在两个服务中添加平台指定:

platform: linux/arm64/v8

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 19:23:01