LXD
LXD это новое поколение системы управления контейнерами, базирующееся на Linux containers.
Установка и настройка
Установить пакет lxd.
# apt-get install lxd
Добавить отображение uid и gid в файлы /etc/subuid и /etc/subgid:
root:100000:65536 lxd:100000:65536
1.открыть консоль
2.Ввести:
$ su- # mcedit /etc/subuid
3.Скопировать данные из вики
4.Нажать F2 или сохранить, потом F10 или выход
Т.с. для второго файла.
Включить сервис lxd.
# systemctl enable --now lxd
Запустить первоначальную настройку.
# lxd init
Добавить пользователя от которого будет запускаться lxd в группу lxd.
# usermod username --append --groups lxd
Запуск
Доступные образы ALT на images.linuxcontainers.org
$ lxc image list images:alt
Примерный вывод:
alt/Sisyphus (3 more) | a6bb3268c7a1 | yes | Alt Sisyphus amd64 (20190710_01:17) | x86_64 | 227.27MB | "Jul 10 | 2019 at 12:00am (UTC)" |
alt/Sisyphus/arm64 (1 more) | 4d860461a016 | yes | Alt Sisyphus arm64 (20190710_01:17) | aarch64 | 177.23MB | "Jul 10 | 2019 at 12:00am (UTC)" |
alt/Sisyphus/i386 (1 more) | 62d0664ce372 | yes | Alt Sisyphus i386 (20190710_01:17) | i686 | 183.37MB | "Jul 10 | 2019 at 12:00am (UTC)" |
alt/Sisyphus/ppc64el (1 more) | 143672c92ab2 | yes | Alt Sisyphus ppc64el (20190710_01:17) | ppc64le | 183.72MB | "Jul 10 | 2019 at 12:00am (UTC)" |
alt/p8 (3 more) | b6674565b63b | yes | Alt p8 amd64 (20190710_01:17) | x86_64 | 231.58MB | "Jul 10 | 2019 at 12:00am (UTC)" |
alt/p8/i386 (1 more) | 864957bdb260 | yes | Alt p8 i386 (20190710_01:17) | i686 | 182.66MB | "Jul 10 | 2019 at 12:00am (UTC)" |
alt/p9 (3 more) | 262a6ff9259c | yes | Alt p9 amd64 (20190710_01:17) | x86_64 | 226.51MB | "Jul 10 | 2019 at 12:00am (UTC)" |
alt/p9/arm64 (1 more) | 7643261d1273 | yes | Alt p9 arm64 (20190710_01:17) | aarch64 | 176.94MB | "Jul 10 | 2019 at 12:00am (UTC)" |
alt/p9/i386 (1 more) | 4faf887493d7 | yes | Alt p9 i386 (20190710_01:17) | i686 | 183.38MB | "Jul 10 | 2019 at 12:00am (UTC)" |
alt/p9/ppc64el (1 more) | df49ca8bf30a | yes | Alt p9 ppc64el (20190710_01:17) | ppc64le | 182.81MB | "Jul 10 | 2019 at 12:00am (UTC)" |
Образы доступены для следующих архитектур:
- amd64
- arm64
- i386
- ppc64el
Запустить контейнер.
$ lxc launch images:alt/p9 first
Убедится, что он есть.
$ lxc ls
Зайти в него.
$ lxc exec first bash
Остановить контейнер.
$ lxc stop first
И удалить его.
$ lxc rm first
Сборка образов
Сборка с использованием официального rootfs
Образы для lxd собираются с помощью distrobuilder.
# apt-get install distrobuilder # distrobuilder build-lxd /usr/share/doc/distrobuilder-*/doc/ci/alt.yaml -o image.release=p9 -o image.architecture=amd64
Вместо /usr/share/doc/distrobuilder-*/doc/ci/alt.yaml можно передать свой конфиг для настройки будущего образа, а через image.release=Sisyphus можно собрать другой релиз (в данном случае Sisyphus).
Добавить полученый образ в lxd.
$ lxc image import lxd.tar.xz rootfs.squashfs --alias myimage
Сборка с использованием mkimage-profiles
Наиболее похож на официальный образа профиль ve/lxc-systemd-networkd. Собрать его можно следующей командой.
$ make ve/lxc-systemd-networkd.squash
Есть еще профили ve/lxc-systemd-etcnet и ve/lxc-sysvinit-etcnet.
Для получения метаданных можно использовать скрипт - https://raw.githubusercontent.com/alt-cloud/gen-lxd-metadata/master/gen-lxd-metadata.sh. Запустив его таким образом (с подстановкой необходимых параметров):
$ ./gen-lxd-metadata.sh \ --name myimage \ --description myimage \ --architecture x86_64 \ --template-hosts \ lxd.tar.xz
Осталось добавить полученый образ в lxd.
$ lxc image import lxd.tar.xz lxc-systemd-networkd-latest-x86_64.squash --alias myimage