PVE 9.1 OCI 原生容器体验
PVE 9.1 新增了对 OCI 格式容器的支持。部分曾经需要使用 Docker 或 Podman 运行的容器,现在可以直接在 Proxmox VE 内原生导入运行。在此记录一下容器的配置过程和注意事项。
TLDR
- 目前不支持特权容器(下载后无法导入,部分要求特权的容器以非特权导入可能不能正常启动)
- 可以全图形化操作,但是部分操作使用命令会更方便
- 使用 Docker 运行容器时,容器内可检测 Running within a container,使用 Proxmox VE 原生运行时未检出,具体机制未探明
- 使用 vmbr 联网,或自己配置硬件直通,似乎没有办法直接共享宿主机 IP
下载容器模板
找到模板下载页面,将 Docker 命令 docker pull vaultwarden/server:latest 中的 vaultwarden/server:latest 直接粘贴至 Reference 输入框,然后等待容器下载:

模板下载后,可按 LXC 容器导入流程进行导入
容器导入
选择 Web UI 右上角 Create CT,或使用 pct create 命令,然后输入主机名、ID 等基本信息,确认非特权已勾选,选择容器模板,设置存储空间、内存占用限制等参数,创建容器:

容器使用
创建容器后,可根据自身需求在 Resources 菜单中创建数据盘,隔离容器本体和数据,以 Vaultwardedn 为例,可直接新建 /data 的挂载点;Options > Environment 可设置或修改容器的环境变量
常规 rootfs LXC 模板一般没有预设变量,OCI 模板可自动识别并设置

若测试没有问题,投入生产使用前请不要忘记设置 Start at boot。
其他技术细节
在常规 LXC 容器运行 next-server,进程树显示为:
1 | |
在常规 LXC 容器运行 Docker,再使用 Docker 运行服务,进程树显示为:
1 | |
直接导入 OCI 模板容器,进程树显示为:
1 | |