【问题标题】:traefik custom service creationtraefik 自定义服务创建
【发布时间】:2021-07-12 12:27:29
【问题描述】:

我正在尝试通过 docker-compose 部署我自己的 docker 容器,其中包含一个带有 traefik 的 http-server。 示例 whoami 容器是通过动态配置识别的(因此原则上动态配置有效)。 当我尝试在 docker-compose.yml 文件中配置我自己的容器时,无法识别它。我只是更改配置中的图像,没有别的,它不起作用。以下只是为了澄清我强制使用端口,因此在图像本身中缺少暴露端口不是问题。

my-service:
 image: my-image
 labels:
  - "traefik.http.services.my-service.loadbalancer.server.port=8002"

除了不退出之外,图像是否需要满足任何属性才能使其能够被 traefik 识别? 当我直接在 docker-compose.yml 中发布端口时,我可以毫无问题地访问 http-server。

【问题讨论】:

标签: docker docker-compose traefik


【解决方案1】:

我认为您缺少标签。

当我的一个容器需要暴露时,这是我要添加到 docker-compose 中的内容:

labels:
- traefik.enable=true
- traefik.http.routers.myappname.entrypoints=tls
- traefik.http.routers.myappname.rule=HostRegexp(`{subdomain:[a-z]+}.subdomain.example.com`)

确定应用程序 FQDN 是您肯定缺少的关键部分 - 其他两个取决于您如何配置 Traefik。

仅供参考,相应的 Traefik 容器如下所示:

traefik:
  command:
[...]
  - --entrypoints.web.address=:80
  - --entrypoints.web.http.redirections.entryPoint.to=tls
  - --entrypoints.web.http.redirections.entryPoint.scheme=https
  - --entrypoints.tls.address=:443
  - --entrypoints.tls.http.tls=true
  - --providers.docker=true
  - --providers.docker.exposedbydefault=false
  ports:
  - 80:80
  - 443:443
  volumes:
  - /var/run/docker.sock:/var/run/docker.sock:ro

Traefik 文档做得很好,会给你一个类似的示例https://doc.traefik.io/traefik/user-guides/docker-compose/basic-example/#details

作为旁注,不太了解部署 Traefik 会使用什么,请确保正确配置 Docker 提供程序:https://doc.traefik.io/traefik/providers/docker/

仅供参考,traefik.http.services.my-service.loadbalancer.server.port 标签将用于帮助 Traefik 确定它应该使用哪个端口,连接到后端容器。

如果该容器没有暴露某些端口,或者暴露了多个端口——否则,Traefik 应该能够自行找出。

考虑阅读您尝试配置的代理的文档,它都有解释,不是很长的阅读,绝对值得您花时间。

【讨论】:

  • 我的问题是,当我使用 traefik 文档中提供的 whoami 图像时,一切正常。只有当我将图像更改为自己的图像时,才没有服务,因此没有创建路由器。我的想法是使用 traefik.http.services.my-service.loadbalancer.server.port 指定端口应该强制 trafik 为我的自定义图像创建服务和路由器,即使它没有公开端口。那么自定义图片本身有什么要求吗?
  • 对图片没有要求。容器应该在 Traefik 可访问的网络中运行,绑定到非环回地址。你遇到了什么错误?你能分享那个图像的 docker-compose / URL 吗?
猜你喜欢
  • 1970-01-01
  • 2014-03-15
  • 2020-10-02
  • 1970-01-01
  • 2021-09-28
  • 2017-02-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多