首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在无根码头安装Traefik : 404页未找到

在无根码头安装Traefik : 404页未找到
EN

Stack Overflow用户
提问于 2022-10-12 19:18:14
回答 1查看 117关注 0票数 0

我在Proxmox中的Debian上有已安装 Docker 无根。我尝试了一些码头集装箱没有任何问题,并清洗所有(用剪枝)安装Traefik码头容器第一。

在安装Traefik之前,我有公开特权端口

在Traefik安装之后,当尝试访问Traefik仪表板时,我会得到错误消息(在HTTP和HTTPS中):

代码语言:javascript
运行
复制
404 page not found

Docker日志显示:

代码语言:javascript
运行
复制
<DOCKER-USER>@<DEBIAN>:~/.local/share/docker/volumes/traefik$ docker compose logs -f
traefik  | time="2022-10-12T22:36:36+04:00" level=info msg="Configuration loaded from file: /traefik.yml"
traefik  | time="2022-10-12T22:36:36+04:00" level=error msg="Failed to retrieve information of the docker client and server host: Cannot connect to the Docker daemon at unix:///run/user/<DOCKER-USER-UID>/docker.sock. Is the docker daemon running?" providerName=docker
traefik  | time="2022-10-12T22:36:36+04:00" level=error msg="Provider connection error Cannot connect to the Docker daemon at unix:///run/user/<DOCKER-USER-UID>/docker.sock. Is the docker daemon running?, retrying in 258.609218ms" providerName=docker

张贴前的版本。最后两行重复。

Traefik Docker容器是从非sudoer帐户安装的。

这里是"docker-compose.yml":

代码语言:javascript
运行
复制
version: '3'

services:
  traefik:
    image: traefik:latest
    container_name: traefik
    restart: unless-stopped
    security_opt:
      - no-new-privileges:true
    networks:
      - proxy
    ports:
      - 80:80
      - 443:443
    environment:
      - CF_API_EMAIL=<CF_API_EMAIL>
      - CF_API_KEY=<CF_API_KEY>
    volumes:
      - /etc/localtime:/etc/localtime:ro
      - /run/user/<DOCKER-USER-UID>/docker.sock:/var/run/docker.sock:ro
      - /home/<DOCKER-USER>/.local/share/docker/volumes/traefik/data/traefik.yml:/traefik.yml:ro
      - /home/<DOCKER-USER>/.local/share/docker/volumes/traefik/data/acme.json:/acme.json
      - /home/<DOCKER-USER>/.local/share/docker/volumes/traefik/data/config.yml:/config.yml:ro
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.traefik.entrypoints=http"
      - "traefik.http.routers.traefik.rule=Host(`traefik-dashboard.<PERSONAL-DOMAIN.COM>`)"
      - "traefik.http.middlewares.traefik-auth.basicauth.users=<USER>:<HASHED-PASSWORD>"
      - "traefik.http.middlewares.traefik-https-redirect.redirectscheme.scheme=https"
      - "traefik.http.middlewares.sslheader.headers.customrequestheaders.X-Forwarded-Proto=https"
      - "traefik.http.routers.traefik.middlewares=traefik-https-redirect"
      - "traefik.http.routers.traefik-secure.entrypoints=https"
      - "traefik.http.routers.traefik-secure.rule=Host(`traefik-dashboard.<PERSONAL-DOMAIN.COM>`)"
      - "traefik.http.routers.traefik-secure.middlewares=traefik-auth"
      - "traefik.http.routers.traefik-secure.tls=true"
      - "traefik.http.routers.traefik-secure.tls.certresolver=cloudflare"
      - "traefik.http.routers.traefik-secure.tls.domains[0].main=<PERSONAL-DOMAIN.COM>"
      - "traefik.http.routers.traefik-secure.tls.domains[0].sans=*.<PERSONAL-DOMAIN.COM>"
      - "traefik.http.routers.traefik-secure.service=api@internal"

networks:
  proxy:
    external: true

以下是"traefik.yml":

代码语言:javascript
运行
复制
api:
  dashboard: true
  debug: true
entryPoints:
  http:
    address: ":80"
    http:
      redirections:
        entryPoint:
          to: https
          scheme: https
  https:
    address: ":443"
serversTransport:
  insecureSkipVerify: true
providers:
  docker:
    endpoint: "unix:///run/user/<DOCKER-USER-UID>/docker.sock"
    exposedByDefault: false
  file:
    filename: /config.yml
certificatesResolvers:
  cloudflare:
    acme:
      email: <CF_API_EMAIL>
      storage: acme.json
      dnsChallenge:
        provider: cloudflare
        resolvers:
          - "1.1.1.1:53"
          - "1.0.0.1:53"

"docker.sock“位于输入这些yml文件的位置。"docker.sock“是由一个不存在的数字组ID所拥有,并且组所有者是一个不存在的数字组ID。

我不确定"docker“是什么(docker.service或docker.socket),但是Docker服务正在运行:

代码语言:javascript
运行
复制
<DOCKER-USER>@<DEBIAN>:~/.local/share/docker/volumes/traefik$ systemctl --user status docker.service
● docker.service - Docker Application Container Engine (Rootless)
     Loaded: loaded (/home/<DOCKER-USER>/.config/systemd/user/docker.service; enabled; vendor preset: enabled)
     Active: active (running) since Mon 2022-10-10 21:40:12 +04; 2 days ago
       Docs: https://docs.docker.com/go/rootless/
   Main PID: 440 (rootlesskit)
      Tasks: 115
     Memory: 442.6M
        CPU: 5min 29.704s
     CGroup: /user.slice/user-<DOCKER-USER-UID>.slice/user@<DOCKER-USER-UID>.service/app.slice/docker.service
             ├─ 440 rootlesskit --net=slirp4netns --mtu=65520 --slirp4netns-sandbox=auto --slirp4netns-seccomp=auto --disable-host-loopback --port-driver=built>
             ├─ 453 /proc/self/exe --net=slirp4netns --mtu=65520 --slirp4netns-sandbox=auto --slirp4netns-seccomp=auto --disable-host-loopback --port-driver=bu>
             ├─ 472 slirp4netns --mtu 65520 -r 3 --disable-host-loopback --enable-sandbox --enable-seccomp 453 tap0
             ├─ 480 dockerd
             ├─ 503 containerd --config /run/user/<DOCKER-USER-UID>/docker/containerd/containerd.toml --log-level info
             ├─3657 fuse-overlayfs -o lowerdir=/home/<DOCKER-USER>/.local/share/docker/fuse-overlayfs/l/XXXXXXXXXXXXXXXXXXXXXXXX:/home/<DOCKER-USER>/.local/share>
             ├─3665 /usr/bin/rootlesskit-docker-proxy -proto tcp -host-ip 0.0.0.0 -host-port 443 -container-ip 172.18.0.2 -container-port 443
             ├─3671 docker-proxy -container-ip 172.18.0.2 -container-port 443 -host-ip 127.0.0.1 -host-port 443 -proto tcp
             ├─3680 /usr/bin/rootlesskit-docker-proxy -proto tcp -host-ip :: -host-port 443 -container-ip 172.18.0.2 -container-port 443
             ├─3687 docker-proxy -container-ip 172.18.0.2 -container-port 443 -host-ip ::1 -host-port 443 -proto tcp
             ├─3700 /usr/bin/rootlesskit-docker-proxy -proto tcp -host-ip 0.0.0.0 -host-port 80 -container-ip 172.18.0.2 -container-port 80
             ├─3706 docker-proxy -container-ip 172.18.0.2 -container-port 80 -host-ip 127.0.0.1 -host-port 80 -proto tcp
             ├─3715 /usr/bin/rootlesskit-docker-proxy -proto tcp -host-ip :: -host-port 80 -container-ip 172.18.0.2 -container-port 80
             ├─3721 docker-proxy -container-ip 172.18.0.2 -container-port 80 -host-ip ::1 -host-port 80 -proto tcp
             └─3738 /usr/bin/containerd-shim-runc-v2 -namespace moby -id XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX -address /run/user/10>

oct. 12 22:35:40 <DEBIAN> dockerd-rootless.sh[480]: time="2022-10-12T22:35:40.516184794+04:00" level=info msg="ignoring event" container=XXXXXXXXXXXXXXXXXXXXXXXX>
oct. 12 22:35:40 <DEBIAN> dockerd-rootless.sh[503]: time="2022-10-12T22:35:40.517352173+04:00" level=warning msg="cleaning up after shim disconnected" id=XXXXXXX>
oct. 12 22:35:40 <DEBIAN> dockerd-rootless.sh[503]: time="2022-10-12T22:35:40.517386322+04:00" level=info msg="cleaning up dead shim"
oct. 12 22:35:40 <DEBIAN> dockerd-rootless.sh[503]: time="2022-10-12T22:35:40.529791839+04:00" level=warning msg="cleanup warnings time=\"2022-10-12T22:35:40+04:>
oct. 12 22:36:36 <DEBIAN> dockerd-rootless.sh[480]: time="2022-10-12T22:36:36.203256215+04:00" level=warning msg="Security options with `:` as a separator are de>
oct. 12 22:36:36 <DEBIAN> dockerd-rootless.sh[503]: time="2022-10-12T22:36:36.346784157+04:00" level=info msg="loading plugin \"io.containerd.event.v1.publisher\>
oct. 12 22:36:36 <DEBIAN> dockerd-rootless.sh[503]: time="2022-10-12T22:36:36.346843512+04:00" level=info msg="loading plugin \"io.containerd.internal.v1.shutdow>
oct. 12 22:36:36 <DEBIAN> dockerd-rootless.sh[503]: time="2022-10-12T22:36:36.346855302+04:00" level=info msg="loading plugin \"io.containerd.ttrpc.v1.task\"...">
oct. 12 22:36:36 <DEBIAN> dockerd-rootless.sh[503]: time="2022-10-12T22:36:36.347114150+04:00" level=info msg="starting signal loop" namespace=moby path=/run/.ro>
oct. 12 22:36:36 <DEBIAN> dockerd-rootless.sh[3782]: time="2022-10-12T22:36:36+04:00" level=info msg="skipping firewalld management for rootless mode"

我被困在这里,很乐意接受任何帮助,谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-10-17 05:32:57

找到解决办法了!

我的"traefik.yml“文件用于内的配置( traefik容器)。因此,配置的端点应该是:

代码语言:javascript
运行
复制
providers:
  docker:
    endpoint: "unix:///var/run/docker.sock"

而不是:

代码语言:javascript
运行
复制
providers:
  docker:
    endpoint: "unix:///run/user/<DOCKER-USER-UID>/docker.sock"

因为绑定已经修复在“docker-come.yml”文件中:

代码语言:javascript
运行
复制
services:
  traefik:
    ...
    volumes:
      - /run/user/<DOCKER-USER-UID>/docker.sock:/var/run/docker.sock:ro
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74047032

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档