如何将常规 LXC 容器(来自另一个服务器或同一服务器)迁移到可通过 Proxmox Web GUI 访问的 Proxmox LXC 容器?
例如,我有一个通过运行以下命令创建的容器:
lxc-create -n debian8 -t debian -- -r jessie
Proxmox 不会自动拾取此容器。我可以看到存储在中的相关数据/var/lib/lxc
,并且此类容器具有常规根文件系统,这与 Proxmox LXC 容器创建的原始磁盘不同,后者安装在 ZFS rpool 上。(我使用 ZFS 进行存储,由 Proxmox ISO 安装程序配置。)
另一个区别是,Proxmox 使用自己的 LXC 配置文件。
使用 Proxmox 导入/转换和注册这样的容器的最佳程序是什么?
答案1
这里没有详细解释如何做到这一点。
- 创建 LXC 容器的档案。
- 使用该档案作为模板创建 Proxmox 容器。
首先进入你的 lxc 容器根目录:
cd /var/lib/lxc/debian8/rootfs/
(如果您使用 lvm 卷作为容器存储,则需要将其挂载并将 cd 放入挂载点,这可以通过 来完成
mount /dev/mapper/<lvgroup-lvdisk> /var/lib/lxc/debian8/rootfs/
,然后将 cd 放入挂载点)
创建档案:
tar -czvf /var/lib/vz/template/cache/my_debian8_template.tar.gz ./
然后从中创建一个新的 proxmox 容器
pct create 100 /var/lib/vz/template/cache/my_debian8_template.tar.gz \
-description LXC -hostname pvecontainer01 -memory 1024 -nameserver 8.8.8.8 \
-net0 name=eth0,hwaddr=52:4A:5E:26:58:D8,ip=192.168.15.147/24,gw=192.168.15.1,bridge=vmbr0 \
-storage local -password changeme
(您可以根据需要修改您的选项。)
更多信息请参见 -人百分比
答案2
仍然是有效的问题和答案,但随着时间的推移,它需要更新。Proxmox v6 允许您创建非特权容器(默认情况下),并且由于它是非特权的(有关非特权 CT 的更多信息在他们的维基上),您无法创建设备或套接字(可以通过手动编辑配置来实现,但这不是本文的主题)
这就是为什么您可能需要从容器备份中排除诸如 sys、proc、net 或 dev 之类的特殊目录。
因此命令应该是这样的:
tar --exclude=dev --exclude=sys --exclude=proc -czvf /var/lib/vz/template/cache/my_debian8_template.tar.gz ./
否则您将得到多种“权限被拒绝”的恢复容器。