docker - 为什么 traefik 没有检测到我的容器

标签 docker traefik

我是 traefik 的新手,想在我的服务器上安装它。 我有一个以 swarm 模式运行的 docker 服务器,并且有一些容器在服务器上运行。只是容器而不是服务。

我的第一次尝试是获取 traefik docker 镜像并启动它。所以使用 let 开始页面上显示的 docker 文件,我可以在 Web GUI 中看到我所有的容器。

当我尝试使用 traefik.toml 配置而不是 docker-compose.yml 文件中的命令行参数时出现问题。

以下撰写文件将工作并显示我的容器。 但是,如果我使用当前注释掉的行,我将看不到容器。

version: '3'

services:
  proxy:
    image: traefik
    command: --api  --docker --docker.domain="portal" --docker.exposedbydefault=false --logLevel=DEBUG
   #  command: --api   --logLevel=DEBUG
    networks:
      - webgateway
    ports:
      - "70:80"
      - "7070:8080"
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - /home/grafra1969/traefik/traefik.toml:/etc/traefik/traefik.toml

networks:
  webgateway:
    driver: bridge

根据日志读取配置文件,按照我的理解应该和默认的差不多。怎么了

这里是docker部分的设置

[docker]
endpoint =  "unix:///var/run/docker.sock"
domain = "portal.net"
ExposedByDefault = true
Watch = true

最佳答案

我的配置存在三个主要问题。

  • 文件 /home/grafra1969/traefik/traefik.toml 不存在。我忘记了一个文件夹。因此使用了默认配置。
  • 以这种方式使用命令行会用默认值覆盖 docker 提供程序的设置。
  • 启用 docker.SwarmMode 时,必须确保标签设置在服务上,而不是容器上。

修复所有这些后,我让它运行了。

关于docker - 为什么 traefik 没有检测到我的容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48871798/

相关文章:

unix - 我该如何使其不互动?

python - 在 docker-py 中发布到随机端口并返回端口

docker - 将 Traefik 前端重定向替换与 PathPrefixStrip 相结合

docker - Caddy服务器+ Docker + Traefik返回 “404 Site domain.com is not served on this interface”

docker - Traefik/Docker:使用端口作为前端规则(而不是路径或子域)

mysql - 登录后 Docker phpmyadmin : 504 Gateway Time-out

docker - 为什么 Cypress 无法确定服务器是否正在运行?

https - traefik - HTTP 到 HTTPS WWW 重定向

traefik - traefik.domain 和 traefik.frontend.rule=Host 有什么区别

python - 如何在 Dockerfile 中添加 PYTHONPATH 的路径