LXC linux containers

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

# This file describes the network interfaces available on your system # For more information, see netplan(5). network: version: 2 renderer: networkd ethernets: enp2s0: dhcp4: no dhcp6: no addresses: [192.168.3.20/24] gateway4: 192.168.3.1 nameservers: addresses: [192.168.3.1, 8.8.8.8, 8.8.4.4] bridges: br0: dhcp4: no dhcp6: no interfaces: [enp2s0] addresses: [192.168.3.22/24] gateway4: 192.168.3.1 #      bridge_ports: enp2s0 parameters: stp: false forward-delay: 0

Оставьте комментарий