вторник, 25 июля 2017 г.

Работа с Linux Container LXC в Debian9

Работа с Linux Container LXC в Debian9

LXC - система контейнерной виртуализации Linux. Позволяет быстро создать виртуальную среду не прибегая к использованию гипервизоров и развертыванию виртуальной машины. LXC создает гостевую ОС внутри хостовой ОС, используя рабочее ядро и отдельную файловую систему.

Установка LXC в Debian9:
apt-get install lxc

Установщиком будут предложены дополнительные пакеты:
bridge-utils debootstrap dirmngr dns-root-data dnsmasq-base liblxc1 libpam-cgfs lxc lxcfs python3-lxc rsync uidmap

После установки LXC готов к работе.

Для того, чтобы создать контейнер по шаблону "debian" с именем container-1:
lxc-create -t debian -n container-1

Посмотреть список доступных шаблонов:
ls /usr/share/lxc/templates/

На данный момент доступны шаблоны:
lxc-alpine    lxc-archlinux  lxc-centos  lxc-debian    lxc-fedora  lxc-openmandriva  lxc-oracle  lxc-slackware   lxc-sshd    lxc-ubuntu-cloud
lxc-altlinux  lxc-busybox    lxc-cirros  lxc-download  lxc-gentoo  lxc-opensuse      lxc-plamo   lxc-sparclinux  lxc-ubuntu

Просмотр списка созданных контейнеров с дополнительной информацией:
lxc-ls -f
Вывести информации о контейнере:
lxc-info -n container-1
 
Стартовать контейнер:
lxc-start -n container-1

Остановить контейнер:
lxc-stop -n container-1


Задать пароль в контейнере:
lxc-attach -n container-1 passwd

Войти в контейнер:
lxc-attach -n container-1
Выйти:
exit
Подключиться консолью к контейнеру
lxc-console -n container-1
 

Настройка сети
Создаваемые контейнеры не имеют настроенных сетевых интерфейсов кроме lo.
Для настройки сети с виртуальным адаптером, необходимо произвести застройки в конфигурационном файле контейнера
/var/lib/lxc/container-2/config
 В данный файл следует дописать настройки сети:

lxc.network.type = veth
lxc.network.flags = up
lxc.network.name = eth0
lxc.network.veth.pair = veth-01
lxc.network.link = lxcbr0
 
Контейнер получит интерфейс   eth0 с динамическим адресом, присвоенным встроенным DHCP виртуальной сетевой подсистемы (dnsmasq).

Копирование (клонирование) контейнера
lxc-copy -n container-2 -N container-3
 Команда lxc-copy заменяет команду lxc-clone 

После клонирования в конфигурационном файле контейнера следует заменить имя его интерфейса в хост-системе, напирмер на veth-02
Файл: /var/lib/lxc/container-3/config
lxc.network.veth.pair = veth-02


Редирект порта 22 из контейнера с адресом 10.0.3.25 на хост-машину 8022 выполняется с помощью правила iptables:
iptables -t nat -A PREROUTING -i ens3 -p tcp --dport 8022 -j DNAT --to 10.0.3.25:22

 Посмотреть созданные правила NAT:
iptables -t nat -L

Документация
https://linuxcontainers.org/ru/lxc/introduction/


Комментариев нет:

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

Настройка NAT-роутера на Debian 9

Настройка NAT-роутера на Debian 9 1. Разрешить в ядре маршрутизацию пакетов между интерфейсами, для этого в файле /etc/sysctl.conf с...