PVE 专栏

1.9容器

2025/10/12·5 分钟阅读

1.9容器 2025年10月12日 3:52 pve平台原生支持LXC,不支持docker container。 LXC时一种轻量级的虚拟化技术,它可以在单一的Linux主机上运行多个相互隔离的容器。LXC提供了一种快速、高效、灵活的虚拟化方案,可以帮助用户更好的管理应用程序和系统资源。LXC与传统…

1.9容器
2025年10月12日
3:52

pve平台原生支持LXC,不支持docker container。

LXC时一种轻量级的虚拟化技术,它可以在单一的Linux主机上运行多个相互隔离的容器。LXC提供了一种快速、高效、灵活的虚拟化方案,可以帮助用户更好的管理应用程序和系统资源。LXC与传统的虚拟机不同,他们共享主机的内核和系统库,因此它们非常轻便,启动的关闭速度也非常快。LXC可以通过命名空间等机制实现容器之间的资源隔离和安全性,因此它们非常适合用于容器化应用程序和服务。
VM:

image1


LXC:

image2

1.创建LXC

pve平台原生支持许多主流的Linux发行版本容器。
1.下载模板
1.选择本地存储(local)--CT模板
可见没有模板
2.点击模板,显示pve提供的原生LXC模板,按需下载
*pve还支持从URL下载与本地上传
2.创建LXC
1.点击创建CT
2.与VM相同,按需求填入选项
#“无特权的容器”:容器内的root用户权限被映射为宿主机上的普通用户,实现权限隔离
#“嵌套”:允许LXC容器内部再运行其它容器技术(如:Docker或LXC)

image3
image4
image5
image6


DNS默认
确认创建
3.外部SSH连接
pve默认创建的LXC容器不支持使用外部的SSH工具进行连接,连接时会出现密码反复验证失败的情况,要么就不使用SSH登录root,要么就使用pve的web面板登录。
如果一定要使用SSH工具登录LXC容器的root用户的话,按照以下设置(可能会降低安全性)
参考:PVE LXC容器开启ssh远程登录_pve lxc ssh-CSDN博客
1.登录pve的面板
2.使用pve的面板登录LXC容器的shell
3.登录LXC容器的root
4.检查ssh服务状态,输入root@debian12:~# systemctl status sshd
(如果ssh服务处于关闭状态,输入:root@debian12:~# systemctl start sshd)
5.修改ssh配置文件
输入root@debian12:~# nano /etc/ssh/sshd_config
6.修改以下选项
1.取消注释“Port 22”

image7


2.取消注释并按下图修改

image8


3.取消注释并按下图修改

image9


7.重新连接,成功

2.使用LXC创建应用

除了提供标准的原生LXC外,pve还与TurnKey Linux进行整合,将多种容器应用进行打包,直接下载进行配置即可使用。
在pve中使用LXC安装TurnKey Linux与安装LXC步骤相近
在配置完LXC后根据镜像中的引导完成服务配置即可

3.在pve中使用Docker

虽然docker与LXC容器使用的原理相近,且拥有类似的特性,但docker与container在如今更加流行,而pve并不原生支持docker container的部署。因此,根据我在互联网上的信息,人们以及官方都更推荐使用一个VM安装Docker Hub而非使用LXC再嵌套一个Docker,而且千万不能将Docker直接安装在pve的物理机系统上(污染物理系统,可能导致不安全或者bug),提到的原因:
1.“Docker官方推荐是装在vm里,lxc里的docker可能会有很多莫名其妙的问题。”
2.“
大概意思是应用类的,主机无关的,最好放到单独虚拟机里,这样可以享受强隔离,实时迁移之类的。
原文:
If you want to run application containers, for example, Docker images, it is recommended that you run them inside a Proxmox Qemu VM. This will give you all the advantages of application containerization, while also providing the benefits that VMs offer, such as strong isolation from the host and the ability to live-migrate, which otherwise isn’t possible with containers.

3.可能导致在使用高级文件时对硬盘的io性能造成较大的压力,据说:直接使得机械硬盘在使用这种方案时由于io(4k随机)性能不足,甚至导致卡死
其实如果有的话,你可以使用TurnKey Linux的LXC模板。但相比VM+Docker还是麻烦些,生态也更差,不过相比LXC,这样的占用会高一些!