Почему traefik не может найти сеть докеров, которую он должен использовать?

я ведуtraefikв контейнере вместе с другими контейнерами, особенноdocker-socket-proxyпоэтому traefik может работать без полномочий root. Моя композиция работает, но появляется предупреждающее сообщение, которое говорит мне, что это скорее удача, чем умение. Предупреждающее сообщение:

      rna-webserver-traefik      | time="2023-01-26T13:09:10Z" level=warning msg="Could not find network named 'webserver_dockersocketproxynet' for container '/rna-webserver-whoami'! Maybe you're missing the project's prefix in the label? Defaulting to first available network." serviceName=rna-webserver-whoami-webserver providerName=docker container=rna-webserver-whoami-webserver-e8d9d6cbca99e8e81841bdf39bac028ad1063498b881928d109f6f4e0d60e6ce

docker-compose.yml:

      networks:
  rna-docker-exposed:
    external: true # means it is a fixed docker network created with "docker network create rna-docker-exposed"
    name: rna-docker-exposed # docker create network rna-docker-exposed
  dockersocketproxynet:
    internal: true # means it gets created especially for this compose and is called <dirname>_rna-docker-nonexposed

services:
  rna-webserver-dockerproxy: # see https://github.com/Tecnativa/docker-socket-proxy
    container_name: rna-webserver-dockerproxy
    image: ghcr.io/tecnativa/docker-socket-proxy:0.1.1 # this image is rather old but used to have a pinned version
                                                       # newer version is ghcr.io/tecnativa/docker-socket-proxy:edge
    restart: unless-stopped
    mem_limit: 2G
    cpus: 0.75
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock:ro   # never expose this container to the internet!
    environment:
      - CONTAINERS=1
      - LOG_LEVEL=debug
    networks:
      - dockersocketproxynet # use only internal network

  rna-webserver-traefik:
    container_name: rna-webserver-traefik
    restart: unless-stopped
    read_only: true
    mem_limit: 2G
    cpus: 0.75
    depends_on:
      - rna-webserver-dockerproxy
    security_opt:
      - no-new-privileges:true
    image: traefik:v2.9.4
    volumes:
      - /srv/docker/webserver/traefik.toml:/etc/traefik/traefik.toml:ro
      - /srv/docker/webserver/shared_providers_dynamic.toml:/etc/traefik/shared_providers_dynamic.toml:ro
      - /srv/docker/webserver/rna.nl.fullchain.pem:/rna.nl.fullchain.pem:ro
      - /srv/docker/webserver/rna.nl.privkey.pem:/rna.nl.privkey.pem:ro
    user: 115:120
    ports:
      - "80:10080"  # high nr so we don't need to be root to bind
      - "443:10443" # ditto
    labels:
      - "traefik.enable=true"
      - "traefik.docker.network=webserver_dockersocketproxynet"
      # Configure Traefik dashboard & api on secure entrypoint (":443"), for local LAN clients only
      - "traefik.http.routers.traefik-dashboard.entrypoints=websecure"
      - "traefik.http.routers.traefik-dashboard.tls=true"
      - "traefik.http.routers.traefik-dashboard.rule=Host(`foo.rna.nl`) && ClientIP(`192.168.2.1/24`) && (PathPrefix(`/api`) || PathPrefix(`/dashboard`))"
      - "traefik.http.routers.traefik-dashboard.service=api@internal"
      - "traefik.http.routers.traefik-dashboard.middlewares=simpleAuth@file,rnalanWhitelist@file" # double on IP whitelist, this and ClientIP ...
    networks:
      - dockersocketproxynet
      - rna-docker-exposed

  rna-webserver-whoami:
    image: traefik/whoami
    container_name: rna-webserver-whoami
    restart: unless-stopped
    user: 117:122
    depends_on:
      - rna-webserver-traefik
    labels:
      - "traefik.enable=true"
      - "traefik.docker.network=webserver_dockersocketproxynet"
      - "traefik.http.routers.whoami.rule=Host(`foo.rna.nl`) && PathPrefix(`/whoami`)"
      - "traefik.http.routers.whoami.entrypoints=websecure"
      - "traefik.http.routers.whoami.tls=true"
    networks:
      - rna-docker-exposed

:

      [providers.docker]
  watch = true
  exposedbydefault = false
  endpoint = "tcp://rna-webserver-dockerproxy:2375"
#  network = "webserver_dockersocketproxynet"

Закомментированная строка вtraefik.tomlэто то, что я включил в несколько форм или исключил, но поведение такое же.

Используя эту установку,whoamiработает. Но я думаю, что это чистая удача из-за этого предупреждения. Что я делаю не так/что я здесь не правильно понимаю?

Каталог docker-compose.yml называется веб-сервером.

1 ответ

Неважно:

        - "traefik.docker.network=webserver_dockersocketproxynet"

вwhoamiдолжно быть

        - "traefik.docker.network=rna-docker-exposed"
Другие вопросы по тегам