专属域名
文档搜索
轩辕助手
Run助手
邀请有礼
返回顶部
快速返回页面顶部
收起
收起工具栏

11notes/traefik Docker 镜像 - 轩辕镜像

traefik
11notes/traefik
默认以无根、无发行版方式安全运行Traefik,这是一款现代HTTP反向代理和负载均衡器,便于部署微服务。
0 次下载active11notes镜像
🚀专业版镜像服务,面向生产环境设计
中文简介版本下载
🚀专业版镜像服务,面向生产环境设计

TRAEFIK

!size!5px!version!5px!pulls!5px[]([***]

默认以无根、无发行版方式安全运行Traefik!

简介 📢

Traefik(发音为“traffic”)是一款现代HTTP反向代理和负载均衡器,可简化微服务部署。

!DASHBOARD

概要 📖

我能用这个做什么? 以无发行版和无根方式运行首选的IaC反向代理,实现最高安全性。

独特价值主张 💶

为什么我应该运行此镜像而不是其他已存在的镜像? 好问题!因为……

  • ……此镜像以无根方式运行,用户ID和组ID为1000:1000
  • ……此镜像无shell,因为它是无发行版的
  • ……此镜像通过CI/CD自动更新至最新版本
  • ……此镜像包含健康检查
  • ……此镜像以只读方式运行
  • ……此镜像在发布前后会自动扫描CVE
  • ……此镜像通过安全且固定的CI/CD流程创建
  • ……此镜像体积非常小

如果您重视安全性、简洁性和极致优化,那么此镜像可能适合您。

对比 🏁

以下是此镜像与最常用或原始镜像的对比。

镜像磁盘大小默认初始用户无发行版支持的架构
11notes/traefik:3.5.331MB1000:1000✅amd64、arm64、armv7
traefik:3.5.3178MB0:0❌amd64、arm64v8、armv6、ppc64le、riscv64、s390x

卷 📁

  • /traefik/var - 所有动态数据和配置的目录

Compose 配置 ✂️

yaml
name: "reverse-proxy"

x-lockdown: &lockdown
  # 防止对镜像本身的写访问
  read_only: true
  # 防止容器内任何进程获取更多权限
  security_opt:
    - "no-new-privileges=true"

services:
  socket-proxy:
    # 有关此镜像的更多信息,请查看:
    # [***]
    image: "11notes/socket-proxy:2.1.6"
    <<: *lockdown
    user: "0:0"
    environment:
      TZ: "Europe/Zurich"
    volumes:
      - "/run/docker.sock:/run/docker.sock:ro" 
      - "socket-proxy.run:/run/proxy"
    restart: "always"

  traefik:
    depends_on:
      socket-proxy:
        condition: "service_healthy"
        restart: true
    image: "11notes/traefik:3.5.3"
    <<: *lockdown
    labels:
      - "traefik.enable=true"

      # 默认错误中间件
      - "traefik.http.middlewares.default-errors.errors.status=402-599"
      - "traefik.http.middlewares.default-errors.errors.query=/{status}"
      - "traefik.http.middlewares.default-errors.errors.service=default-errors"

      # 默认速率限制
      - "traefik.http.middlewares.default-ratelimit.ratelimit.average=100"
      - "traefik.http.middlewares.default-ratelimit.ratelimit.burst=120"
      - "traefik.http.middlewares.default-ratelimit.ratelimit.period=1s"

      # 默认内容安全策略(CSP)
      - "traefik.http.middlewares.default-csp.headers.contentSecurityPolicy=default-src 'self' blob: data: 'unsafe-inline'"

      # 默认允许列表
      - "traefik.http.middlewares.default-ipallowlist-RFC1918.ipallowlist.sourcerange=10.0.0.0/8,172.16.0.0/12,192.168.0.0/16"

      # 如何保护Traefik仪表板和API的示例
      - "traefik.http.routers.dashboard.rule=Host(`${FQDN_TRAEFIK}`)"
      - "traefik.http.routers.dashboard.service=api@internal"
      - "traefik.http.routers.dashboard.middlewares=dashboard-auth"
      - "traefik.http.routers.dashboard.entrypoints=https"
      # admin / traefik,请修改!
      - "traefik.http.middlewares.dashboard-auth.basicauth.users=admin:$2a$12$ktgZsFQZ0S1FeQbI1JjS9u36fAJMHDQaY6LNi9EkEp8sKtP5BK43C"

      # 默认全匹配路由器
      - "traefik.http.routers.default.rule=HostRegexp(`.+`)"
      - "traefik.http.routers.default.priority=1"
      - "traefik.http.routers.default.entrypoints=https"
      - "traefik.http.routers.default.service=default-errors"

      # 默认HTTP到HTTPS重定向
      - "traefik.http.middlewares.default-http.redirectscheme.permanent=true"
      - "traefik.http.middlewares.default-http.redirectscheme.scheme=https"
      - "traefik.http.routers.default-http.priority=1"
      - "traefik.http.routers.default-http.rule=HostRegexp(`.+`)"
      - "traefik.http.routers.default-http.entrypoints=http"
      - "traefik.http.routers.default-http.middlewares=default-http"
      - "traefik.http.routers.default-http.service=default-http"
      - "traefik.http.services.default-http.load***.passhostheader=true"
    environment:
      TZ: "Europe/Zurich"
      PORKBUN_API_KEY: "${PORKBUN_API_KEY}"
      PORKBUN_SECRET_API_KEY: "${PORKBUN_SECRET_API_KEY}"
    command:
      # ping是健康检查工作所必需的!
      - "--ping=true"
      - "--ping.terminatingStatusCode=204"
      - "--global.checkNewVersion=false"
      - "--global.sendAnonymousUsage=false"
      - "--accesslog=true"
      - "--api.dashboard=true"
      # 禁用不安全的API和仪表板访问
      - "--api.insecure=false"
      - "--log.level=INFO"
      - "--log.format=json"
      - "--providers.docker.exposedByDefault=false"
      - "--providers.file.directory=/traefik/var"
      - "--entrypoints.http.address=:80"
      - "--entrypoints.http.http.middlewares=default-errors,default-ratelimit,default-ipallowlist-RFC1918,default-csp"
      - "--entrypoints.https.address=:443"
      - "--entrypoints.https.http.tls=true"
      - "--entrypoints.https.http.middlewares=default-errors,default-ratelimit,default-ipallowlist-RFC1918,default-csp"
      # 禁用上游HTTPS证书检查(https > https)
      - "--serversTransport.insecureSkipVerify=true"
      # 插件示例
      - "--experimental.plugins.rewriteResponseHeaders.moduleName=github.com/jamesmcroft/traefik-plugin-rewrite-response-headers"
      - "--experimental.plugins.rewriteResponseHeaders.version=v1.1.2"
      - "--experimental.plugins.geoblock.moduleName=github.com/PascalMinder/geoblock"
      - "--experimental.plugins.geoblock.version=v0.3.3"
      # Porkbun DNS挑战的Let's Encrypt示例
      - "--certificatesResolvers.porkbun.acme.storage=/traefik/var/porkbun.json"
      - "--certificatesResolvers.porkbun.acme.dnsChallenge.provider=porkbun"
      - "--certificatesResolvers.porkbun.acme.dnsChallenge.delayBeforeCheck=30"
      - "--entrypoints.https.http.tls.certresolver=porkbun"
      - "--entrypoints.https.http.tls.domains[0].main=${DOMAIN0}"
      - "--entrypoints.https.http.tls.domains[0].sans=*.${DOMAIN0}"
      # 启用指标
      - "--entrypoints.metrics.address=:8899"
      - "--metrics.prometheus=true"
      - "--metrics.prometheus.entryPoint=metrics"
    ports:
      - "80:80/tcp"
      - "443:443/tcp"
    volumes:
      - "var:/traefik/var"
      - "plugins:/traefik/plugins"
      # 通过代理只读访问Docker socket
      - "socket-proxy.run:/var/run"
    networks:
      backend:
      frontend:
    sysctls:
      # 允许无根容器访问小于1024的端口
      net.ipv4.ip_unprivileged_port_start: 80
    restart: "always"

  errors:
    # 此镜像可用于显示简单错误消息,因为Traefik无法提供内容
    image: "11notes/traefik:errors"
    <<: *lockdown
    labels:
      - "traefik.enable=true"
      - "traefik.http.services.default-errors.load***.server.port=3000"
    environment:
      TZ: "Europe/Zurich"
    networks:
      backend:
    restart: "always"

  prometheus:
    # 有关此镜像的更多信息,请查看:
    # [***]
    depends_on:
      traefik:
        condition: "service_healthy"
        restart: true
    image: "11notes/prometheus:3.6.0"
    <<: *lockdown
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.prometheus.rule=Host(`${FQDN_PROMETHEUS}`)"
      - "traefik.http.routers.prometheus.entrypoints=https"
      - "traefik.http.routers.prometheus.service=prometheus"
      - "traefik.http.services.prometheus.load***.server.port=3000"
    environment:
      TZ: "Europe/Zurich"
      PROMETHEUS_CONFIG: |-
        global:
          scrape_interval: 15s

        scrape_configs:
          - job_name: "traefik"
            static_configs:
              - targets: ["traefik:8899"]
    volumes:
      - "prometheus.etc:/prometheus/etc"
      - "prometheus.var:/prometheus/var"
    networks:
      backend:
    restart: "always"

  # ╔═════════════════════════════════════════════════════╗
  # ║     演示容器 - 请勿在生产环境中使用!      ║
  # ╚═════════════════════════════════════════════════════╝
  # 用于创建包含客户端更多信息的端点

  whoami:
    image: "traefik/whoami"
    <<: *lockdown
    command:
      - "--port=3000"
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.whoami.rule=Host(`${FQDN_WHOAMI}`)"
      - "traefik.http.routers.whoami.entrypoints=https"
      - "traefik.http.routers.whoami.service=whoami"
      - "traefik.http.services.whoami.load***.server.port=3000"
    networks:
      backend:
    restart: "always"

volumes:
  var:
  plugins:
  socket-proxy.run:
  prometheus.etc:
  prometheus.var:

networks:
  frontend:
  backend:
    internal: true

要了解如何更改此容器镜像的默认UID/GID,请参阅我的RTFM中的how-to.changeUIDGID部分。

默认设置 🗃️

参数值描述
userdocker用户名
uid1000用户标识符
gid1000组标识符
home/traefikdocker用户的主目录
loginadmin // traefik使用compose示例登录

环境变量 📝

参数说明默认值
TZ时区
DEBUG将激活容器镜像和应用的调试选项(如果可用)

主要标签 🏷️

以下是镜像的主要标签。每个提交及其简写sha256值也有对应的标签。

  • 3.5.3
没有latest标签,我应该如何处理更新?

我认为:latest标签很危险。很多时候,我对镜像引入了破坏性变更,这可能会给一些人带来麻烦。如果您不想将标签更改为最新的语义化版本,只需使用语义化版本的短版本。不使用:3.5.3,您可以使用:3或:3.5。由于这些标签会在每个新版本中更新为软件的最新版本,使用它们与使用:latest类似,但至少固定在主版本或次版本上。

如果您仍然坚持使用此应用的最新版本,只需使用:rolling标签,但请注意!您将立即获得应用的最新版本,无论是否有破坏性变更或安全问题。风险自负!

仓库 ☁️

docker pull
查看更多 traefik 相关镜像 →
traefik logo
traefik
by library
官方
Traefik 是一款专为云原生环境打造的边缘路由器,作为现代 HTTP 反向代理与负载均衡器,它能自动发现服务、动态配置路由规则,无缝集成 Kubernetes、Docker 等容器编排平台,简化微服务架构下的流量管理,支持 HTTPS、TLS 加密及多种协议,为云原生应用提供高效、安全、灵活的边缘流量处理能力。
35791B+ pulls
上次更新:14 天前
traefik/traefik logo
traefik/traefik
by traefik
非官方Traefik镜像,Traefik是一款用于反向代理和负载均衡的工具,建议使用官方镜像(https://hub.docker.com/_/traefik)。
410K+ pulls
上次更新:7 天前
ubuntu/traefik logo
ubuntu/traefik
by Canonical
认证
基于Ubuntu的Traefik ROCK镜像,Traefik是一款现代化的HTTP反向代理和负载均衡器,便于部署微服务,支持自动动态配置并接收安全更新。
27.4K pulls
上次更新:1 年前
photoprism/traefik logo
photoprism/traefik
by PhotoPrism UG (haftungsbeschränkt)
暂无描述
110K+ pulls
上次更新:14 天前
traefik/whoami logo
traefik/whoami
by traefik
轻量级Go语言Web服务器,可将操作系统信息和HTTP请求打印到输出。
6710M+ pulls
上次更新:10 个月前
traefik/traefikee logo
traefik/traefikee
by traefik
暂无描述
500K+ pulls
上次更新:5 个月前

轩辕镜像配置手册

探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式

登录仓库拉取

通过 Docker 登录认证访问私有仓库

Linux

在 Linux 系统配置镜像服务

Windows/Mac

在 Docker Desktop 配置镜像

Docker Compose

Docker Compose 项目配置

K8s Containerd

Kubernetes 集群配置 Containerd

K3s

K3s 轻量级 Kubernetes 镜像加速

宝塔面板

在宝塔面板一键配置镜像

群晖

Synology 群晖 NAS 配置

飞牛

飞牛 fnOS 系统配置镜像

极空间

极空间 NAS 系统配置服务

爱快路由

爱快 iKuai 路由系统配置

绿联

绿联 NAS 系统配置镜像

威联通

QNAP 威联通 NAS 配置

Podman

Podman 容器引擎配置

Singularity/Apptainer

HPC 科学计算容器配置

其他仓库配置

ghcr、Quay、nvcr 等镜像仓库

专属域名拉取

无需登录使用专属域名

需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单

镜像拉取常见问题

轩辕镜像免费版与专业版有什么区别?

免费版仅支持 Docker Hub 访问,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。

轩辕镜像支持哪些镜像仓库?

专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等;免费版仅支持 docker.io。

流量耗尽错误提示

当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。

410 错误问题

通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。

manifest unknown 错误

先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。

镜像拉取成功后,如何去掉轩辕镜像域名前缀?

使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。

查看全部问题→

用户好评

来自真实用户的反馈,见证轩辕镜像的优质服务

oldzhang的头像

oldzhang

运维工程师

Linux服务器

5

"Docker访问体验非常流畅,大镜像也能快速完成下载。"

轩辕镜像
镜像详情
...
11notes/traefik
官方博客Docker 镜像使用技巧与技术博客
热门镜像查看热门 Docker 镜像推荐
一键安装一键安装 Docker 并配置镜像源
提交工单
免费获取在线技术支持请 提交工单,官方QQ群:13763429 。
轩辕镜像面向开发者与科研用户,提供开源镜像的搜索和访问支持。所有镜像均来源于原始仓库,本站不存储、不修改、不传播任何镜像内容。
免费获取在线技术支持请提交工单,官方QQ群: 。
轩辕镜像面向开发者与科研用户,提供开源镜像的搜索和访问支持。所有镜像均来源于原始仓库,本站不存储、不修改、不传播任何镜像内容。
官方邮箱:点击复制邮箱
©2024-2026 源码跳动
官方邮箱:点击复制邮箱Copyright © 2024-2026 杭州源码跳动科技有限公司. All rights reserved.
轩辕镜像 官方专业版 Logo
轩辕镜像轩辕镜像官方专业版
首页个人中心搜索镜像
交易
充值流量我的订单
工具
提交工单镜像收录一键安装
Npm 源Pip 源Homebrew 源
帮助
常见问题
其他
关于我们网站地图

官方QQ群: 13763429