Установка и настройка LXD под Ubuntu 18.04
LXD - это гипервизор LXC контейнеров. Продвинутая версия LXC.
UID и GID Maping
Перед настройкой LXD убедитесь, что у вас корректно настроены map uig и gid. Mapping нужен для того, чтобы запускать непривелигированные контейнера. Т.е. root в контейнере на хост машине будет работать с ID 100000, а не 0. Соостветственно файлы в контейнеры будут иметь владельца, начиная с 100000.
nano /etc/subuid
lxc:100000:65536
lxd:100000:65536
root:100000:65536
nano /etc/subgid
lxc:100000:65536
lxd:100000:65536
root:100000:65536
Для удобства вы можете добавить пользователя lxc-root.
groupadd -r --gid 100000 lxc-root
useradd -r -M --uid 100000 -g lxc-root lxc-root
Установка LXD под Ubuntu 18.04
Установите пакеты LXD:
aptitude install lxd lxd-client
Инициируйте LXD:
lxd init
Ответы на вопросы:
# lxd init
Would you like to use LXD clustering? (yes/no) [default=no]: no
Do you want to configure a new storage pool? (yes/no) [default=yes]: yes
Name of the new storage pool [default=default]: default
Would you like to connect to a MAAS server? (yes/no) [default=no]: no
Would you like to create a new local network bridge? (yes/no) [default=yes]: yes
What should the new bridge be called? [default=lxdbr0]: lxdbr0
What IPv4 address should be used? (CIDR subnet notation, “auto” or “none”) [default=auto]: 10.0.200.1/24
Would you like LXD to NAT IPv4 traffic on your bridge? [default=yes]: yes
What IPv6 address should be used? (CIDR subnet notation, “auto” or “none”) [default=auto]: none
Would you like LXD to be available over the network? (yes/no) [default=no]: no
Would you like stale cached images to be updated automatically? (yes/no) [default=yes] no
Would you like a YAML "lxd init" preseed to be printed? (yes/no) [default=no]: yes
config:
images.auto_update_interval: "0"
networks:
- config:
ipv4.address: 10.200.0.1/16
ipv4.nat: "true"
ipv6.address: none
description: ""
managed: false
name: lxdbr0
type: ""
storage_pools:
- config: {}
description: ""
name: default
driver: dir
profiles:
- config: {}
description: ""
devices:
eth0:
name: eth0
nictype: bridged
parent: lxdbr0
type: nic
root:
path: /
pool: default
type: disk
name: default
cluster: null
Образы LXD
Скачать образ Ubuntu:
lxc image copy images:ubuntu/18.04/amd64 local: --alias=ubuntu-18.04
Скачать образ Alpine:
lxc image copy images:alpine/3.10/amd64 local: --alias=alpine-3.10
Запуск контейнера:
lxc launch ubuntu-18.04 test-ubuntu
Настройка статического IP адреса
lxc stop test-ubuntu
lxc network attach lxdbr0 test-ubuntu eth0 eth0
lxc config device set test-ubuntu eth0 ipv4.address 10.0.200.10
lxc start test-ubuntu