Найти в Дзене

Основы LXD/LXC

Шпаргалка по основным моментам LXD/LXC (платформа контейнеризации, использующая общее ядро хостовой операционной системы). Описано следующее: установка; запуск контейнера; установка apache2 в контейнер; проброс интернета в контейнер; установка статического ip адреса; доступ через внешний адрес; экспорт/импорт контейнера. В качестве ОС для тестов был использован Debian 11. В других ОС команды могут отличаться.

Видеоверсия (YouTube)

УСТАНОВКА LXD

which snapd (смотрим установлен ли snapd)
apt install snapd
snap install lxd
lxd init

ЗАПУСК КОНТЕЙНЕРА

lxc launch images:debian/buster debian
lxc list (смотрим список контейнеров)

ПРОБРОС ИНТЕРНЕТА В КОНТЕЙНЕР

lxc network list (смотрим список сетей, в моем случае lxdbr0 внутренняя, а enp0s3 внешняя)

iptables -A FORWARD -i lxdbr0 -o enp0s3 -j ACCEPT
iptables -A FORWARD -i enp0s3 -o lxdbr0 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -t nat -A POSTROUTING -o enp0s3 -j MASQUERADE

УСТАНОВКА APACHE2 В КОНТЕЙНЕР

lxc exec debian -- apt install apache2
curl 10.120.103.139 (проверяем работает ли apache2)

УСТАНОВКА IP АДРЕСА

Здесь "debian" - это имя контейнера

lxc stop debian
lxc network attach lxdbr0 debian eth0 eth0
lxc config device set debian eth0 ipv4.address 10.114.125.42
lxc start debian

ДОСТУП ЧЕРЕЗ ВНЕШНИЙ АДРЕС

Здесь "192.168.5.44" - внешний адрес, а "10.114.125.42" - внутренний адрес

ip -4 a add dev enp0s3 192.168.5.44/24
lxc network forward create lxdbr0 192.168.5.44
lxc network forward edit lxdbr0 192.168.5.44
# Добавляем в конфиг target_address
config:
target_address: 10.114.125.42
lxc network forward list lxdbr0 (смотрим список пробросов)

ЭКСПОРТ/ИМПОРТ КОНТЕЙНЕРА
На первой машине

lxc export debian
scp debian.tar.gz root@192.168.5.230:/home/nick123456789/

На второй машине

lxc import debian.tar.gz
lxc start debian

Материал с сайта phpnick.ru. Ссылка на материал - https://phpnick.ru/posts/category/administration/85