|
| 1 | +--- |
| 2 | +title: PVE 9.1 OCI 原生容器体验 |
| 3 | +date: 2026-03-25 12:13:59 |
| 4 | +updated: 2026-03-25 16:43:34 |
| 5 | +categories: 技术 |
| 6 | +tags: |
| 7 | +- PVE |
| 8 | +- Proxmox |
| 9 | +- Docker |
| 10 | +- 容器 |
| 11 | +thumbnailImage: https://lfs.libmbr.com/assets/2026/03/25/0601f7cc-e928-4aeb-b851-1fdb01b3ac6f.webp |
| 12 | +--- |
| 13 | +PVE 9.1 新增了对 OCI 格式容器的支持。部分曾经需要使用 Docker 或 Podman 运行的容器,现在可以直接在 Proxmox VE 内原生导入运行。在此记录一下容器的配置过程和注意事项。 |
| 14 | + |
| 15 | +<!-- more --> |
| 16 | + |
| 17 | +## TLDR |
| 18 | +- 目前不支持特权容器(下载后无法导入,部分要求特权的容器以非特权导入可能不能正常启动) |
| 19 | +- 可以全图形化操作,但是部分操作使用命令会更方便 |
| 20 | +- 使用 Docker 运行容器时,容器内可检测 Running within a container,使用 Proxmox VE 原生运行时未检出,具体机制未探明 |
| 21 | +- 使用 vmbr 联网,或自己配置硬件直通,似乎没有办法直接共享宿主机 IP |
| 22 | + |
| 23 | +## 下载容器模板 |
| 24 | +找到模板下载页面,将 Docker 命令 ``docker pull vaultwarden/server:latest`` 中的 ``vaultwarden/server:latest`` 直接粘贴至 ``Reference`` 输入框,然后等待容器下载: |
| 25 | + |
| 26 | + |
| 27 | + |
| 28 | +模板下载后,可按 LXC 容器导入流程进行导入 |
| 29 | + |
| 30 | +## 容器导入 |
| 31 | +选择 Web UI 右上角 Create CT,或使用 ``pct create`` 命令,然后输入主机名、ID 等基本信息,**确认非特权已勾选**,选择容器模板,设置存储空间、内存占用限制等参数,创建容器: |
| 32 | + |
| 33 | + |
| 34 | + |
| 35 | +## 容器使用 |
| 36 | +创建容器后,可根据自身需求在 Resources 菜单中创建数据盘,隔离容器本体和数据,以 Vaultwardedn 为例,可直接新建 /data 的挂载点;Options > Environment 可设置或修改容器的环境变量 |
| 37 | + |
| 38 | +*常规 rootfs LXC 模板一般没有预设变量,OCI 模板可自动识别并设置* |
| 39 | + |
| 40 | + |
| 41 | + |
| 42 | +若测试没有问题,投入生产使用前请不要忘记设置 Start at boot。 |
| 43 | + |
| 44 | +## 其他技术细节 |
| 45 | +在常规 LXC 容器运行 next-server,进程树显示为: |
| 46 | +``` |
| 47 | +├─lxc-start───systemd─┬─PM2 v5.4.3: God─┬─pnpm─┬─sh───next-server (v1───16*[{next-server (v1}] |
| 48 | +│ │ │ └─9*[{pnpm}] |
| 49 | +│ │ └─10*[{PM2 v5.4.3: God}] |
| 50 | +│ ├─3*[agetty] |
| 51 | +│ ├─cron |
| 52 | +│ ├─dbus-daemon |
| 53 | +│ ├─2*[dhclient] |
| 54 | +│ ├─master─┬─pickup |
| 55 | +│ │ └─qmgr |
| 56 | +│ ├─postgres───5*[postgres] |
| 57 | +│ ├─sshd |
| 58 | +│ └─systemd-* |
| 59 | +``` |
| 60 | +在常规 LXC 容器运行 Docker,再使用 Docker 运行服务,进程树显示为: |
| 61 | +``` |
| 62 | +├─lxc-start───systemd─┬─NetworkManager───3*[{NetworkManager}] |
| 63 | +│ ├─3*[agetty] |
| 64 | +│ ├─blkmapd |
| 65 | +│ ├─containerd───11*[{containerd}] |
| 66 | +│ ├─containerd-shim─┬─s6-svscan─┬─s6-supervise───s6-linux-init-s |
| 67 | +│ │ │ ├─s6-supervise───s6-ipcserverd |
| 68 | +│ │ │ ├─s6-supervise |
| 69 | +│ │ │ └─s6-supervise───python3─┬─go2rtc───11*[{go2rtc}] |
| 70 | +│ │ │ └─27*[{python3}] |
| 71 | +│ │ └─12*[{containerd-shim}] |
| 72 | +│ ├─cron |
| 73 | +│ ├─dbus-daemon |
| 74 | +│ ├─dockerd───12*[{dockerd}] |
| 75 | +│ ├─master─┬─pickup |
| 76 | +│ │ └─qmgr |
| 77 | +│ ├─os-agent───4*[{os-agent}] |
| 78 | +│ ├─polkitd───3*[{polkitd}] |
| 79 | +│ ├─rpcbind |
| 80 | +│ ├─sshd |
| 81 | +│ └─systemd-* |
| 82 | +``` |
| 83 | +直接导入 OCI 模板容器,进程树显示为: |
| 84 | +``` |
| 85 | +├─lxc-start───vaultwarden───20*[{vaultwarden}] |
| 86 | +``` |
0 commit comments