...
Разрешить ip_forward, для чего раскомментировать
Информация net.ipv4.ip_forward=1 в /etc/sysctl.conf, после чего выполнить в командной строке
Command sudo sysctl -p Настроить macvlan-интерфейс для сети LXC-контейнеров.
Для этого нужно добавить в /etc/network/interfaces секцию видаИнформация # LXC-related NIC's
auto port0
iface port0 inet manual
pre-up /sbin/ip link add port0 type dummy
up /sbin/ip link set port0 address 13:26:39:00:1a:12
up /sbin/ip link set port0 mtu 9000
auto macvlan0
iface macvlan0 inet static
address 10.10.10.1
netmask 255.255.255.0
pre-up ip link add macvlan0 link port0 type macvlan mode bridge
pre-up ip link set macvlan0 address 14:28:44:00:1b:12вместо 10.10.10.1.24 /24 (маска сети 255.255.255.0) — указать сеть и маску сети, которую которые планируется использовать под контейнеры; mac-адреса также можно задать самостоятельно;
Добавить в /etc/modules строчки
Информация dummydummu
macvlanЧтобы контейнеры не только могли взаимодействовать между собой,
но и имели доступ во внешние сети (например, для установки пакетов из сетевых репозиториев),
нужно добавить iptables-правило вида:Command sudo iptables -t nat -A POSTROUTING -s 10.10.10.0/24 -o eth0 -j MASQUERADE При необходимости доступа из внешнего мира к процессам внутри контейнера,
нужно добавить соответствующее DNAT-iptables-правило в PREROUTINGПерезагрузиться; проверить, что новые сетевые интерфейсы появились
(ip addr list)
...
Перед установкой пакетов правильно настроить пути к репозиториям в файле /etc/apt/sources.list:
В частности, в ОС СН Смоленск некоторые пакеты, нужные для работы lxc, находятся на втором диске дистрибутива (диск для разработчиков).Установить необходимые пакеты:
Command sudo apt install lxc lxc-dev bridge-utils cgroup-tools Дополнительно установить пакет с шаблонами для операционных систем Astra Linux:
Command sudo apt install lxc-astra Создать контейнер командами
Command для ОС СН Смоленск:
sudo lxc-create -t astralinux-se -n container-1
или для ОС ОН Орёл:
sudo lxc-create -t astralinux-ce -n container-1важно: т. к. ядро контейнера и хоста одинаковое, на хосте с ОС СН Смоленск обязательно нужно использовать astralinux-se шаблон, а для ОС ОН Орёл – astralinux-ce шаблон;
Настроить созданный контейнер container-1;
как минимум в нём нужно настроить сеть, для этого в файле /var/lib/lxc/container-1/config нужно заменить строкуИнформация lxc.network.type = empty секцией вида
Информация lxc.network.type = macvlan
lxc.network.macvlan.mode = bridge
lxc.network.flags = up
lxc.network.name = eth0
lxc.network.link = macvlan0
lxc.network.ipv4.gateway = 10.10.10.1
lxc.network.ipv4.address = 10.10.10.100/24в которой заданы ip-адрес контейнера (здесь 10.10.10.100), и шлюз (интерфейс, созданный на хосте в предыдущем пункте)
...
Запуск:
Command sudo lxc-start -n container-1 Остановка:
Command sudo lxc-stop -n container-1 Просмотр всех контейнеров:
Command sudo lxc-ls -f Сетевой вход в контейнер:
Command ssh -l admin 10.10.10.100 (возможна задержка примерно в минуту, в течение которой ssh-сервер стартует внутри контейнера). Пароль по умолчанию — astralinux
важно: после первого логина нужно сменить пароль для пользователя admin на более надёжный командой passwd;Удаление контейнера:
Command sudo lxc-destroy -n container-1 Также, в случае использования контейнера в ОСОН ОС ОН Орёл для входа можно использовать консоль:
Command sudo lxc-console -n container-1 Внутри контейнера, при правильно настроенной сети, можно устанавливать и настраивать программы так же, как и на обычном хосте
Замечание:
Информация Для корректной работы шаблонов astralinux-se и astralinux-ce должен быть правильно сконфигурирован файл /etc/apt/sources.list на хосте
...