我是在一台 arm vps 上安装 pve 来管理 lxc ,下面遇到的问题真花了很多时间才能找到问题所在。这些问题在 x86 平台,依然存在,并非 arm 平台的兼容性问题。
当然,如果我用 x86 的 pve 会少走很多弯路。
docker 在 lxc 中默认的 storage driver 是 vfs ,vfs 性能差和无层复用占用空间大等问题。网上有教程教如何将 storage driver 改为性能更好的 overlay2 。
但问题来了,几乎所有教程都没有提及到要 docker in lxc 使用 overlay2 ,宿主机内核必须要是 5.11 及以上才能应用成功,否则 storage driver 改为 overlay2 后,docker 无法启动。
而 debian 11 默认安装的内核是 5.10 ,这样导致类似我这样的小白,花了大量时间研究这个问题,才无意中发现问题所在,过程是非常痛苦及浪费时间。
刚开始,我是用 pve 7 arm 版(佛西大佬维护的版本),因为 pve 官方的 ct 模板并不提供 arm 版,所以我只能去 linuxcontainers.org 下载 arm 的镜像(我下的是 debian 12 ),然后创建 lxc 容器。
创建过程没什么问题。后来因为上面 storage driver 问题通过升级内核解决后,我就直接将 arm vps 重装 debian 12 ,然后安装 pve 8 。依然用 linuxcontainers.org 下载 arm 的镜像去创建容器,但此时无法创建成功,
错误信息提示“unable to open file '/etc/network/interfaces.tmp.13283' - No such file or directory”,无论 debian 11 还是 12 的镜像都一样有这个问题。
我尝试在一台 x86 pve 8 的主机使用 linuxcontainers.org 下载 x86 的镜像去创建容器,也有同样问题。但 x86 pve 8 使用 pve 官方的 debian 12 x86 镜像,是没有问题,可以创建成功。
我在上网搜索了一下,在 forum.proxmox.com 也有几个人提及这个问题( 提及的是 mint 和 debian 镜像 ),发贴日期都是最近几个月。
后来,我发现在 pve 8 arm 可以使用 alpine 镜像创建成功。奇怪的是,之前 pve 7 arm 版中使用 alpine cloud 镜像,重启容器后网络配置都被还原。
所以这些兼容性问题,真是令人头疼.
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.