预计阅读时间: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
发表回复