Table of Contents

Задача

Имеем виртуальный хост LXC 3.0.1 на базе Ubuntu 18.04. Мне надо перенести контейнеры с этого хоста на хост Proxmox 5.2.1.

Решение

Перенос будет осуществляться путем экспорта контейнеров в архивы (поскольку физически это хост один - я просто меняю среду виртуализации с XenServer 7.6 на Proxmox 5.2.1).

Создание архива контейнера

На хосте LXC находим папку с контейнером и переходим в нее, в rootfs.

mount | grep wiki
lxd/containers/wiki on /var/lib/lxd/storage-pools/lxd/containers/wiki type zfs (rw,relatime,xattr,noacl)

cd /var/lib/lxd/storage-pools/lxd/containers/wiki/rootfs

Архивируем

tar -czvf /home/AUTOSYS/mike/wiki.tar.gz ./

Теперь копируем полученных архив имиджа контейнера на новый хост.

Разворачивание имиджа на хосте ProxMox

 pct restore 100 ./exported_image.tar.gz --storage pve-data

Однако, в таком случае контейнер будет развернут в файл, который будет монтироваться как loopback устройство.
Для того, чтобы файловая система контейнера на хосте ProxMox хранилась в папке нужно подмонтировать диск и скопировать все файлы в папку, а потом в конфигурации контейнера изменить путь к rootfs на путь к папке:

rootfs: /mnt/test/

Вот тут написано как переместить rootfs с loopback-устройства на файловую систему. http://wiki.janforman.com/lxc

Вот такой вариант разворачивания НЕ РАБОТАЕТ, поскольку в ProxMox используется свой собственный дистрибутив утилит lxc - lxc-pve.

sudo lxc snapshot wiki wiki_test
sudo lxc publish wiki/wiki_test --alias wiki-export
sudo lxc image export wiki-export .

При импорте будет ошибка:

ERROR: archive contains no configuration file