LXC linux containers — виртуальные контейнеры — технология нативной виртуализации уровня операционной системы.
Установка:
apt-get install lxc lxctl lxc-templates bridge-utils
# Создать виртуалку в /var/lib/lxc/frank где frank — имя контейнера (обычно в примерах test-container), в системе ubuntu по умолчанию пользователь ubuntu с паролем ubuntu. Список доступных типов контейнеров (операционных систем) можно посмотреть так: ls /usr/share/lxc/templates/
lxc-create -n frank -t ubuntu
# Запустить контейнер (вирталку)
lxc-start -n frank
# Запустить контейнер не входя в него
lxc-start -n frank -d
# Остановить контейнер
lxc-stop -n frank
# Зайти в виртуалку их хост-машины
lxc-console -n frank
# Выйти из консоли виртуалки назад в консоль хост-машины:
Ctrl+a и q
# Посмотреть список виртуалок
lxc-ls -f
# Cбросить пароль из хост-машины
chroot /var/lib/lxc/frank/rootfs
passwd
exit
Конфигурация LXC
vim /etc/default/lxc-net
USE_LXC_BRIDGE=»false»
Конфигурация контейнера
vim /var/lib/lxc/frank/config
# Template used to create this container: /usr/share/lxc/templates/lxc-ubuntu
# Parameters passed to the template:
# Template script checksum (SHA-1): 865a6e4050da6a45575473b0a71f84ced41604fe
# For additional config options, please look at lxc.container.conf(5)
# Uncomment the following line to support nesting containers:
#lxc.include = /usr/share/lxc/config/nesting.conf
# (Be aware this has security implications)
# Common configuration
lxc.include = /usr/share/lxc/config/ubuntu.common.conf
# Container specific configuration
lxc.rootfs.path = dir:/var/lib/lxc/frank/rootfs
lxc.uts.name = frank
lxc.arch = amd64
# Network configuration
lxc.net.0.type = veth
lxc.net.0.link = br0
lxc.net.0.ipv4.gateway = 192.168.3.1
lxc.net.0.ipv4.address = 192.168.3.23/24
lxc.net.0.flags = up
lxc.net.0.hwaddr = 00:16:3e:68:cb:a7
lxc.start.auto = 1
lxc.start.delay = 15
lxc.start.order = 50
Конфигурация сети хост-машины Ubuntu 18.04 bionic beaver
Начиная с Ubuntu 17.04 для управления сетью используется netplan
vim /etc/netplan/01-netcfg.yaml
netplan apply