如何将常规 LXC 容器迁移到 Proxmox LXC 容器?

如何将常规 LXC 容器迁移到 Proxmox LXC 容器?

如何将常规 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

这里没有详细解释如何做到这一点。

  1. 创建 LXC 容器的档案。
  2. 使用该档案作为模板创建 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 ./

否则您将得到多种“权限被拒绝”的恢复容器。

相关内容