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 $USER

2. 处理 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=23880/tcp
sudo firewall-cmd --permanent --add-port=24214/tcp
sudo firewall-cmd --permanent --add-port=24215/tcp
sudo firewall-cmd --permanent --add-port=23515/udp
sudo firewall-cmd --reload

4. 启动云瞰

我们为 Fedora 单独维护了一份 compose 模板(:Z SELinux 标签全部预置好),不用手动改:

浏览器下载 compose.yml

Fedora 专用 · openvino 变体 · :Z 标签已预置 · 含 OTA sidecar

或 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-cudayunkan-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
  updater:
    image: registry.cn-hangzhou.aliyuncs.com/yunkan/yunkan-updater:latest
    container_name: yunkan-updater
    restart: always
    network_mode: none
    volumes:
      - ./data:/app/data:Z
      - ./compose.yml:/app/compose.yml:ro
      - /var/run/docker.sock:/var/run/docker.sock:z
    environment:
      - TZ=Asia/Shanghai
      - COMPOSE_PROJECT_NAME=yunkan
      - STATE_FILE=/app/data/.upgrade-state
      - SKYVIEW_COMPOSE_FILE=/app/compose.yml
      - SKYVIEW_COMPOSE_SERVICE=yunkan
compose.yml Fedora 版(关键行加 :Z)

启动后浏览器 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 防止误拒)。

NVIDIA GPU 在 Fedora

nvidia-container-toolkit 有 Fedora 包,装好后 runtime: nvidia 即可。详见 NVIDIA 官方文档

升级:全功能可用——网页后台一键升级,或手动 docker compose pull && docker compose up -d

Fedora 部署 - 云瞰 文档