在 Unraid 服务器上的 docker 中设置 Traefik 反向代理

在 Unraid 服务器上的 docker 中设置 Traefik 反向代理

我不确定这是否是合适的发帖之地,如果有更好的交换网站或论坛,请告诉我!

我有一个位于 192.168.1.254 的 unraid 盒子

我想在 Docker 容器(plex、ombi 等...)中设置一些服务,我正在遵循本指南这里

本质上我已经让大多数东西正常工作了(我可以在各自的端口上看到 plex 和 ombi),但我不想调整 Unraid webui 的端口(端口 80 和 443),而是宁愿给运行 traefik 的 docker 容器它自己的可路由 IP(类似于 192.168.1.253),然后我会设置路由器以端口转发到该 IP(在 80 和 443 上)。

然后,代理将指向在 Unraid 盒(192.168.1.254)上运行的服务及其绑定到的端口(plex 为 32400,等等...)。

我一直在docker-compose.yaml尝试创建一个网络,但没有成功,我尝试过这个:

---
version: '3'

services:

  traefik:
    image: traefik:latest
    command: --web --docker --docker.watch --docker.domain=${DOMAIN} \
             --docker.exposedbydefault=false --acme.domains=${DOMAIN} 
    container_name: traefik
    hostname: traefik
    #ports:
      #- "80:80"
      #- "443:443"
    networks:
      local:
        ipv4_address: 192.168.1.253
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock:ro
      - ${CONFIG}/traefik/acme.json:/acme.json
      - ${CONFIG}/traefik/traefik.toml:/etc/traefik/traefik.toml
      - ${CONFIG}/traefik/.htpasswd:/etc/traefik/.htpasswd:ro
    labels:
      traefik.enable: "true"
      traefik.frontend.rule: "Host:monitor.${DOMAIN}"
      traefik.port: "8080"
      traefik.frontend.auth.basic: "${HTPASSWD}"
      com.ouroboros.enable: "true"
    restart: unless-stopped
    # Other services would be here...

networks:
  local:
    ipam:
      driver: default
      config:
        - subnet: 192.168.1.0/24

但这会出现以下错误:

Creating network "setup_local" with the default driver
ERROR: Pool overlaps with other one on this address space

我也尝试过driver: bridge但是只得到以下结果:

Creating network "setup_local" with the default driver
ERROR: plugin "bridge" not found

我尝试的另一件事是删除网络内容并将以下行添加到该command部分:

-p 192.168.1.253:80:80

这没有引发任何错误,但是当我导航到192.168.1.253它时没有任何反应?

我对此还很陌生,所以我真的不知道在哪里寻找日志(我在路由器上运行 pfSense)。

更新:

按照@0x76 的建议并添加 IP(ip addr add 192.168.1.253 dev eth0)后,我将端口配置更新为以下内容:

ports:
  - "192.168.1.253:80:80"
  - "192.168.1.253:443:443"

但现在我收到以下错误:

ERROR: for traefik  Cannot start service traefik: driver failed programming external connectivity on endpoint traefik (b0377ca8df24ccda2dc6d798ad3ebb190edf4a2e08eda29f21c288b19ef1bc8c): Error starting userland proxy: listen tcp 192.168.1.253:80: bind:address already in use
ERROR: Encountered errors while bringing up the project.

答案1

Unraid 框当前仅具有一个与之关联的 IP,因此仅在 docker 配置中添加该 IP 是行不通的。

您可以通过向网络接口添加额外的 IP 将此 IP 添加到您的 unraid 盒中,此命令为:ip addr add 192.168.1.253 dev IF其中 IF 是您想要添加该 IP 的网络接口。

此后使用-p 192.168.1.253:80:80可能会有效。

相关内容