Docker
在 docker 容器中執行 Unifi Controller 時無法採用新設備
我正在嘗試將 Unifi 控制器託管在 docker 容器中,但除非我將網路模式設置為“主機”,否則我無法採用新設備(接入點)。我遵循了幾個指南並打開了此處列出的所有埠。可以管理已連接的設備並找到新設備,但採用它們會導致永無止境的“採用”狀態。
第一個配置基於jacobalberty/unifi:
version: "3.7" services: controller: image: jacobalberty/unifi:arm32v7 restart: unless-stopped init: true volumes: - ./data:/unifi environment: TZ: "Europe/Stockholm" ports: - "3478:3478/udp" - "5514:5514/udp" - "8080:8080" - "8443:8443" - "8843:8843" - "8880:8880" - "6789:6789" - "27117:27117" - "5656-5699:5656-5699/udp" - "1900:1900" - "10001:10001/udp" # network_mode: "host"
另一個是linuxserver.io範例的直接副本:
version: "2.1" services: unifi-controller: image: linuxserver/unifi-controller container_name: unifi-controller environment: - PUID=1000 - PGID=1000 - MEM_LIMIT=1024M #optional volumes: - ./data:/config ports: - 3478:3478/udp - 10001:10001/udp - 8080:8080 - 8443:8443 - 1900:1900/udp #optional - 8843:8843 #optional - 8880:8880 #optional - 6789:6789 #optional - 5514:5514 #optional restart: unless-stopped
docker 容器在連接到有線網路的 Raspberry Pi 上執行。主機正在執行其他容器,但沒有衝突的埠。如果存在埠衝突,無論如何都不應該啟動容器。
問題是容器不知道主機的本地 IP 地址,所以它不能告訴 AP 它應該使用什麼 IP 地址來連接回來。
要解決此問題,您必須手動設置控制器 IP 地址,
Settings -> Controller -> Controller Hostname/IP
並且不要忘記檢查Override inform host with controller hostname/IP
在 Adopting Access Points/Switches/Security Gateway下的jacobalberty/unifi 映像的描述中有更多關於此的資訊。
要添加到上述解決方案中,一旦我在設置中更新了控制器 IP,就必須重新啟動 docker 容器才能永久保存更改。在您的 AP 中使用 SSH 並執行快速資訊命令(只需在登錄後輸入資訊)以驗證狀態是否顯示已連接並連接到正確的 IP 而不是內部 docker 網路也是一個好主意:
狀態:已連接(http://192.168.1.X:8080/inform)