LXD — это гипервизор LXC контейнеров. Продвинутая версия LXC .
UID и GID Maping
Перед настройкой LXD убедитесь, что у вас корректно настроены map uig и gid. Mapping нужен для того, чтобы запускать непривелигированные контейнера. Т.е. root в контейнере на хост машине будет работать с ID 100000, а не 0. Соостветственно файлы в контейнеры будут иметь владельца, начиная с 100000.
nano /etc/subuid
_x000D_lxc:100000:65536_x000D_lxd:100000:65536_x000D_root:100000:65536nano /etc/subgid
_x000D_lxc:100000:65536_x000D_lxd:100000:65536_x000D_root:100000:65536Для удобства вы можете добавить пользователя lxc-root.
_x000D_groupadd -r --gid 100000 lxc-root_x000D_useradd -r -M --uid 100000 -g lxc-root lxc-rootУстановка LXD под Ubuntu 18.04
Установите пакеты LXD:
_x000D_aptitude install lxd lxd-clientИнициируйте LXD:
_x000D_lxd initОтветы на вопросы:
_x000D_# lxd init_x000D__x000D_Would you like to use LXD clustering? (yes/no) [default=no]: no_x000D_Do you want to configure a new storage pool? (yes/no) [default=yes]: yes_x000D_Name of the new storage pool [default=default]: default_x000D_Would you like to connect to a MAAS server? (yes/no) [default=no]: no_x000D_Would you like to create a new local network bridge? (yes/no) [default=yes]: yes_x000D_What should the new bridge be called? [default=lxdbr0]: lxdbr0_x000D_What IPv4 address should be used? (CIDR subnet notation, “auto” or “none”) [default=auto]: 10.0.200.1/24_x000D_Would you like LXD to NAT IPv4 traffic on your bridge? [default=yes]: yes_x000D_What IPv6 address should be used? (CIDR subnet notation, “auto” or “none”) [default=auto]: none_x000D_Would you like LXD to be available over the network? (yes/no) [default=no]: no_x000D_Would you like stale cached images to be updated automatically? (yes/no) [default=yes] no_x000D_Would you like a YAML "lxd init" preseed to be printed? (yes/no) [default=no]: yes_x000D_config:_x000D_ images.auto_update_interval: "0"_x000D_networks:_x000D_- config:_x000D_ ipv4.address: 10.200.0.1/16_x000D_ ipv4.nat: "true"_x000D_ ipv6.address: none_x000D_ description: ""_x000D_ managed: false_x000D_ name: lxdbr0_x000D_ type: ""_x000D_storage_pools:_x000D_- config: {}_x000D_ description: ""_x000D_ name: default_x000D_ driver: dir_x000D_profiles:_x000D_- config: {}_x000D_ description: ""_x000D_ devices:_x000D_ eth0:_x000D_ name: eth0_x000D_ nictype: bridged_x000D_ parent: lxdbr0_x000D_ type: nic_x000D_ root:_x000D_ path: /_x000D_ pool: default_x000D_ type: disk_x000D_ name: default_x000D_cluster: nullОбразы LXD
Скачать образ Ubuntu:
_x000D_lxc image copy images:ubuntu/18.04/amd64 local: --alias=ubuntu-18.04Скачать образ Alpine:
_x000D_lxc image copy images:alpine/3.10/amd64 local: --alias=alpine-3.10Запуск контейнера:
_x000D_lxc launch ubuntu-18.04 test-ubuntuНастройка статического IP адреса
_x000D_lxc stop test-ubuntu_x000D_lxc network attach lxdbr0 test-ubuntu eth0 eth0_x000D_lxc config device set test-ubuntu eth0 ipv4.address 10.0.200.10_x000D_lxc start test-ubuntu