Можно ли экспортировать контейнер lxc
на другую машину? Есть некоторые инструменты, такие как lxc-snap
и lxc-clone
, которые помогут в экспорте в другую систему? Могу ли я скопировать и вставить папку rootfs или есть стандартный способ сделать это?
3 ответа
Я не думаю, что lxc-clone
и lxc-snap
должны использоваться для перемещения контейнеров на новую машину. По словам одного из разработчиков LXC, обоснование этих команд :
Одним из очевидных вариантов использования этих клонов снимков является поддержка пошаговой разработки образов rootfs. Внесите некоторые изменения, снимок, внесите еще некоторые изменения, снимок, отменить ...
Там никогда не упоминается экспорт на другой компьютер...
В то же время я успешно портировал Debian LXC с машины Debian на машину Arch Linux, сначала создав контейнер Debian LXC без какой-либо настройки, а затем скопировав на новую машину config, fstab, lxcname.log
файлы и каталог rootfs
. Вы можете попробовать это, как я, но ... YMMV.
Я бегу lxc
контейнеры по объемам btrfs
, так что я могу снимок их легко с btrfs sub snap
Их можно переместить в удаленную файловую систему btrfs
быстрее, чем с помощью rsync
используя:
btrfs send /my/snapshot | ssh user@host.com "btrfs receive /my/destination"
btrfs
работает со снимками и не включает виртуальные файловые системы [ proc run sys
]. Передача дополнительных снимков также возможна.
При перемещении снимков в файловую систему, отличную от btrfs
:
- Смонтируйте удаленный пункт назначения как файловую систему
sshfs
&cd
для монтирования - Остановите контейнер и создайте архив контейнера
tar.xz
Вы можете просто скопировать файловую систему и внести соответствующие изменения, как указано в посте выше, чтобы все работало нормально. Первоначально я сделал это и заставил это работать.
У меня всегда есть проблемы с NAT в LXC контейнерам, так что если вы легкий вес пользователя, вы также можете просто chroot
системы. В настоящее время я использую lxc-templates
для создания копии моей желаемой ОС, а затем chroot
в эту систему для выполнения своих задач. Мне не нужна виртуализация в моем случае использования. Идея проста (не с точки зрения реализации), что она может быть легко перенесена.