插件主页中 … 阅读全文
插件主页中,可以看到正在运行的容器、pod 以及它们占用资源的情况。

pod 的使用方法
Podman 兼容 docker-compose 格式的编排文件。对于 immich 这类比较复杂的项目,直接用 podman-compose 就能启动。
cd immich
podman-compose up -d
如果需要升级版本:
podman-compose down
podman-compose pull
podman-compose up -d
先 down 再 pull 可以避免旧容器还在运行时拉取镜像导致冲突。其他用法跟 Docker 差不多,熟悉 Docker 的话很快就能上手。
Pod 自启动
之前在 systemd 那篇文章里讲过用户级 systemd 的用法,借助它就能实现容器自启动。
下面是一个 immich.service 文件模板:
[Unit]
Description=immich
After=network-online.target
[Service]
Type=forking
WorkingDirectory=/path/to/immich
ExecStart=/usr/bin/podman-compose up -d
ExecStop=/usr/bin/podman-compose stop
TimeoutStopSec=30
[Install]
WantedBy=default.target
把这个文件放到 ~/.config/systemd/user/ 目录下:
systemctl --user daemon-reload
systemctl --user enable immich
这样 immich 就会随系统自动启动了。不同的服务,改一下文件名、WorkingDirectory 和 Description 就行。
注意 ExecStart 用的是 up -d 而不是 start。up -d 的好处是:如果没有新版镜像就直接启动容器;如果发现镜像有更新,它会自动拉取并重建容器,更加灵活。
虚拟机
Cockpit 原生支持虚拟机管理。功能没有 PVE 那么丰富,但基本的控制、硬件直通这些还是有的,做一个轻量的虚拟机管理面板够用了。
虽然功能不够丰富,但 BUG 还是丰富的——只能说需求不高的人用起来还行。
安装

在 Cockpit 的应用程序页面中找到虚拟机插件,点击安装即可。
网络
安装虚拟机插件的时候会自带一个 NAT 网络,我觉得没啥用就删掉了。
建议参考之前网络那篇文章创建一个桥接网络备用。
❯ ip a
......
3: enp2s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq master vmbr2s0 state UP group default qlen 1000
link/ether a0:36:90:35:c0:08 brd ff:ff:ff:ff:ff:ff
altname enxa0369035c008
4: vmbr2s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether a0:36:90:35:c0:08 brd ff:ff:ff:ff:ff:ff
inet 10.0.0.111/24 brd 10.0.0.255 scope global dynamic noprefixroute vmbr2s0
valid_lft 583321sec preferred_lft 583321sec
......
可以看到桥接接口 vmbr2s0 的 IP 地址(比如我这里的是 10.0.0.111),记下这个接口名,后面创建虚拟机时把网络选成它就行。
创建虚拟机

点击创建虚拟机后,会弹出配置窗口,填写虚拟机名称、选择安装镜像等。
有一个小坑:安装源这个选项有时候点了没生效。如果发现没生效,在后续编辑页面里重新指定一下镜像路径就可以了。
其他设置按需调整——CPU、内存、磁盘大小这些,根据自己的需求来。网络接口记得选之前创建的桥接网络(比如 vmbr2s0),这样虚拟机就能跟宿主机在同一个网段了。
确认无误后点击开始安装,就像装普通系统一样完成虚拟机系统的安装。
其他功能
Cockpit 面板还支持硬件直通、快照、文件共享等功能,可以在使用过程中慢慢摸索。
总的来说,Cockpit 的虚拟机功能虽然不如 PVE 那么专业,但胜在简单——图形界面就能完成创建和配置,不需要额外搭建管理平台。对于只想跑一两个轻量虚拟机的 NAS 用户来说,完全够用了。 收起

