我是 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/