Основы LXD/LXC

Добавлено: 12/10/2023 12:18 |  Обновлено: 18/10/2023 17:19 |  Добавил: nick |  Просмотры: 808 Комментарии: 0
Вводная часть
Шпаргалка по основным моментам 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 (смотрим список контейнеров)

+--------+---------+----------------------+------+-----------+-----------+
|  NAME  |  STATE  |         IPV4         | IPV6 |   TYPE    | SNAPSHOTS |
+--------+---------+----------------------+------+-----------+-----------+
| debian | RUNNING | 10.114.125.42 (eth0) |      | CONTAINER | 0         |
+--------+---------+----------------------+------+-----------+-----------+
(В таблице IPV6 пустое, только, чтобы сделать таблицу короче, а так значение IPV6 в таблице должно быть)

ПРОБРОС ИНТЕРНЕТА В КОНТЕЙНЕР
lxc network list (смотрим список сетей, в моем случае lxdbr0 внутренняя, а enp0s3 внешняя)

+--------+----------+---------+-----------------+------+-------------+---------+---------+
|  NAME  |   TYPE   | MANAGED |      IPV4       | IPV6 | DESCRIPTION | USED BY |  STATE  |
+--------+----------+---------+-----------------+------+-------------+---------+---------+
| enp0s3 | physical | NO      |                 |      |             | 0       |         |
+--------+----------+---------+-----------------+------+-------------+---------+---------+
| lxdbr0 | bridge   | YES     | 10.114.125.1/24 |      |             | 2       | CREATED |
+--------+----------+---------+-----------------+------+-------------+---------+---------+
(В таблице IPV6 пустое, только, чтобы сделать таблицу короче, а так значение IPV6 в таблице должно быть)
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 (смотрим список пробросов)

+----------------+-------------+------------------------+-------+
| LISTEN ADDRESS | DESCRIPTION | DEFAULT TARGET ADDRESS | PORTS |
+----------------+-------------+------------------------+-------+
| 192.168.5.44   |             | 10.114.125.42          | 0     |
+----------------+-------------+------------------------+-------+

ЭКСПОРТ/ИМПОРТ КОНТЕЙНЕРА
На первой машине
lxc export debian
scp debian.tar.gz root@192.168.5.230:/home/nick123456789/
На второй машине
lxc import debian.tar.gz
lxc start debian

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

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