Компиляция LXC на Ubuntu
Данная инструкция полезна для обновления LXC на Ubuntu. По умолчанию в Ubuntu 18.04 стоит версия 3.0.3. Ее можно обновить до 4.0.4 согласно инструкции ниже.
Удалите верию LXC, если она была установлена:
aptitude purge lxc lxc-utils lxcfs liblxc-common
systemctl unmask lxcfs
systemctl unmask lxc-net
systemctl unmask lxc
Установите программы:
aptitude install uidmap checkinstall
Скачайте файл
wget https://github.com/lxc/lxc/archive/lxc-4.0.4.zip
Разархивируйте файл
unzip lxc-4.0.4.zip
Перейдите в папку
mv lxc-lxc-4.0.4 lxc-4.0.4
cd lxc-4.0.4
Сконфигурируйте проект
./autogen.sh
./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var
Запустите компиляцию
make
Создайте deb пакет
sudo checkinstall
Установите deb пакет
dpkg -i lxc_4.0.4-1_amd64.deb
Создайте файл /etc/default/lxc-net с содержимым:
USE_LXC_BRIDGE="true"
LXC_BRIDGE="lxcbr0"
LXC_ADDR="10.0.3.1"
LXC_NETMASK="255.255.255.0"
LXC_NETWORK="10.0.3.0/24"
LXC_DHCP_RANGE="10.0.3.2,10.0.3.254"
LXC_DHCP_MAX="253"
#LXC_DHCP_CONFILE=/etc/lxc/dnsmasq.conf
#LXC_DOMAIN="lxc"
А также файл /etc/lxc/default.conf с содержимым:
lxc.net.0.type = veth
lxc.net.0.link = lxcbr0
lxc.net.0.flags = up
lxc.net.0.hwaddr = 00:16:3e:xx:xx:xx
lxc.idmap = u 0 100000 65536
lxc.idmap = g 0 100000 65536
Сделайте UID и GID Mapping
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, чтобы в htop видеть процессы запущенные в lxc
groupadd -r --gid 100000 lxc-root
useradd -r -M --uid 100000 -g lxc-root lxc-root
Установите права доступа, чтобы корректно запускались контейнеры:
chown lxc-root:root /var/lib/lxc
chmod 755 /var/lib/lxc