使用 Podman 部署 Cockpit 和 Immich 机器学习容器

预计阅读时间:4分钟

使用 Podman 部署安装 Cockpit 管理工具并使用 Podman 启动 Immich 的机器学习容器。以便在浏览器中方便配置和访问

一、开放所需端口

在默认情况下,Linux 防火墙(firewalld)可能会阻止一些端口的外部访问。为了确保 Cockpit 和 Immich 模块能够正常被访问,需要永久放行相关端口。

1. 放行 9090 端口(用于 Cockpit)

firewall-cmd --add-port=9090/tcp --permanent
firewall-cmd --reload

2. 放行 3003 端口(用于 Immich 机器学习容器)

firewall-cmd --permanent --add-port=3003/tcp
firewall-cmd --reload

二、安装 Cockpit 和 Podman

Cockpit 是一款轻量级的 Web 管理工具,可用于查看系统信息、容器、服务等。

dnf install podman cockpit cockpit-podman -y

安装完成后,启用并启动 Cockpit:

systemctl enable --now cockpit.socket

然后可通过浏览器访问 Cockpit:

https://<你的服务器IP>:9090

注意:首次访问时浏览器可能提示 SSL 证书不安全,可选择“继续前往”。

三、部署 Immich Machine Learning 容器

Immich 是一个支持自动图片整理、面部识别等功能的自托管照片管理系统。我们配置immich的远程机器学习提高计算速度

1. 下载镜像

podman pull ghcr.io/immich-app/immich-machine-learning:release

2. 运行容器

podman run \
  --name immich_machine_learning \
  --restart=always \
  --replace \
  -p 3003:3003 \
  -v model-cache:/cache \
  -e TZ=Asia/Shanghai \
  -d \
  ghcr.io/immich-app/immich-machine-learning:release

此命令的作用如下:

  • --name: 指定容器名称
  • --restart=always: 容器自动重启策略
  • --replace: 替换已有同名容器
  • -p 3003:3003: 映射本地端口
  • -v model-cache:/cache: 使用持久卷缓存模型
  • -e TZ=Asia/Shanghai: 设置时区
  • -d: 后台运行容器

四、配置容器开机自动启动(可选但推荐)

虽然运行容器时使用了 --restart=always,但 Podman 默认并不会像 Docker 一样在系统启动时自动重启容器。要实现真正的“开机自启”,需依赖 systemd 启动服务。

1. 生成并安装 systemd 单元文件

podman generate systemd --name immich_machine_learning --files --restart-policy=always

这将在当前目录生成 container-immich_machine_learning.service 文件。将其移动到系统服务目录并启用:

mv container-immich_machine_learning.service /etc/systemd/system/
systemctl daemon-reexec
systemctl enable container-immich_machine_learning.service

五、验证部署

  • 访问 Cockpit Web 控制台查看容器状态:
    https://<你的服务器IP>:9090
  • 访问 Immich ML 控制台查看容器状态:
    http://<你的服务器IP>:3003

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注