Fedora 部署
Fedora 39+ 預設安裝的是 podman,要跑雲瞰需要另外安裝 docker-ce。SELinux 預設為 enforce 模式 + firewalld 預設開啟,磁碟區標籤和連接埠放行不能少。
1. 安裝 docker-ce(不是 podman)
Fedora 預設使用 podman,但雲瞰映像檔和 docker-compose 檔案是按 docker 相容性測試的。podman 大部分相容,但 host network 模式的行為略有差異,建議改用 docker-ce:
bash
sudo dnf -y install dnf-plugins-core
sudo dnf config-manager --add-repo https://download.docker.com/linux/fedora/docker-ce.repo
sudo dnf -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
sudo systemctl enable --now docker
sudo usermod -aG docker $USER2. 處理 SELinux(關鍵)
磁碟區掛載必須加 :Z 或 :z 標籤
Fedora SELinux 強制啟用 enforce 模式,容器寫入資料磁碟區會被拒絕,除非給磁碟區打上
:Z(私有,建議)或 :z(共用)標籤。詳見 compose 範例。3. 開放 firewalld 連接埠
bash
sudo firewall-cmd --permanent --add-port=23406/tcp
sudo firewall-cmd --permanent --add-port=23515/udp
sudo firewall-cmd --permanent --add-port=23515/tcp
sudo firewall-cmd --permanent --add-port=23880/tcp
sudo firewall-cmd --reload4. 啟動雲瞰
我們為 Fedora 另外維護了一份 compose 範本(:Z SELinux 標籤全部已預先設定好),不用手動改:
瀏覽器下載 compose.yml
Fedora 專用 · openvino 變體 · :Z 標籤已預置 · 支援網頁後台線上升級
或透過 SSH 用 wget:
bash
mkdir -p ~/yunkan && cd ~/yunkan
wget https://yun-kan.com/compose/fedora.yml -O compose.yml
docker compose up -d如何切換到其他變體
本範本預設 yunkan-openvino(Intel iGPU)。純 CPU 改
image: 為 yunkan-cpu;NVIDIA GPU 改為 yunkan-cuda 或 yunkan-trt 並取消 deploy: 的註解。無論哪個變體,:Z 磁碟區標籤都必須保留(SELinux 強制要求)。yaml
name: yunkan
services:
yunkan:
image: registry.cn-hangzhou.aliyuncs.com/yunkan/yunkan-openvino:latest
container_name: yunkan
restart: always
network_mode: host
devices:
- /dev/dri:/dev/dri
volumes:
- ./data:/app/data:Z
- ./recordings:/app/data/recordings:Z
- /etc/machine-id:/etc/machine-id:ro
- /sys/class/dmi/id/product_uuid:/sys/class/dmi/id/product_uuid:ro
- /var/run/docker.sock:/var/run/docker.sock:z
environment:
- TZ=Asia/Shanghai
- SKYVIEW_SELF_CONTAINER_NAME=yunkan啟動後瀏覽器打開 http://<伺服器IP>:23406/ 進入 Setup 精靈。
5. 常見問題
容器啟動後寫入錄影出現 Permission denied
幾乎可以肯定是 SELinux 磁碟區標籤的問題。
docker compose down,在 compose volumes 行末加 :Z,docker compose up -d 重啟即可。/etc/machine-id 和 /sys/class/dmi/id/product_uuid 是唯讀不需要標籤(也可加 :ro,Z 防止誤拒)。在 Fedora 上使用 NVIDIA GPU
nvidia-container-toolkit 有 Fedora 套件,裝好後
runtime: nvidia 即可。詳見 NVIDIA 官方文件。升級:全功能可用——網頁後台一鍵升級,或手動 docker compose pull && docker compose up -d。
這篇文件有幫助嗎?