Как установить и настроить LXC контейнер с последней версией lts 24.04 на Ubuntu 20.04 и 24.04, сделать бэкапы и настроить чтобы данные хранились в одном img файле

Руководство по установке и настройке LXC контейнеров на Ubuntu 20.04 и 24.04

p.s. как установить в ubuntu 20.04 самую свежую lts версию ubuntu 24.04 и изолированно запустить приложения

Проверено на: Ubuntu 20.04 / 24.04 (amd64)
LXC: классический (не LXD)


Оглавление

1. [Установка LXC]
2. [Создание контейнера]
3. [Базовое управление]
4. [Настройка сети: доступ из локальной сети]
5. [Доступ по SSH]
6. [Btrfs-бэкенд через loop-файл]
7. [Снапшоты и клонирование]
8. [Резервное копирование и восстановление]
9. [Полезные команды]
10. [Устранение неполадок]


Установка LXC

 Важно: Если lxc-checkconfig показывает предупреждения, убедитесь, что в ядре включены: CONFIG_VETHCONFIG_MACVLANCONFIG_BRIDGECONFIG_NET_NS.


Создание контейнера

Универсальный шаблон

Примеры

Параметр Описание
-t download Шаблон загрузки образов
-n <name> Имя контейнера
--dist Дистрибутив (ubuntu, debian, alpine)
--release Версия (noble, jammy, focal)
--arch Архитектура (amd64, arm64)

 Базовое управление


Настройка сети: доступ из локальной сети

По умолчанию контейнеры LXC работают в NAT-ременте и получают адреса вида 10.0.3.x. Чтобы контейнер был виден в вашей локальной сети (192.168.0.x), настройте мост (bridge).

Шаг 1: Настройка моста на хосте (Netplan)

  1. Узнайте имя физического интерфейса:

  2. Отредактируйте конфиг Netplan:

  3. Замените конфигурацию (соблюдайте отступы пробелами):

  4. Примените настройки:

  5. Проверьте:

Шаг 2: Настройка контейнера

  1. Остановите контейнер:

  2. Отредактируйте конфиг:

  3. Найдите секцию сети и замените на:

Шаг 3: Статический IP внутри контейнера

  1. Подключитесь к контейнеру:

  2. Отредактируйте Netplan внутри (/etc/netplan/*.yaml):

  3. Примените:

  4. Проверьте:


Доступ по SSH

Установка SSH-сервера внутри контейнера

Разрешить вход под root (опционально)

Внимание: Вход под root по паролю снижает безопасность. Используйте SSH-ключи в продакшене.

Найдите и измените:

Перезапустите SSH:

Подключение извне

Полезные материалы:


Btrfs-бэкенд через loop-файл

Позволяет использовать снапшоты Btrfs без отдельного раздела и данные контейнера хранятся в одном img файле.

Быстрый способ (одной командой)

Параметр Описание
-B loop Бэкенд: файл-образ как блочное устройство
--fssize 10G Размер файла-образа
--fstype btrfs Файловая система внутри образа

Ручной способ (для полного контроля)

Проверка Btrfs


Снапшоты и клонирование

 Работает только если контейнер создан на Btrfs (бэкенд btrfs или loop + --fstype btrfs)

Создание снапшота

Просмотр списка

Пример вывода:

Восстановление из снапшота

Клонирование (новый контейнер из снапшота)

Удаление снапшота

Полезный материал:
Снапшоты и клоны LXC


Резервное копирование и восстановление

Метод 1: Полный архив (tar) — универсальный

Восстановление:

Метод 2: rsync для инкрементальных бэкапов

Автоматизация: скрипт бэкапа

Создайте /usr/local/bin/lxc-backup-bulxc.sh:

Сделайте исполняемым и добавьте в cron:


Полезные команды

Информация и мониторинг

Управление ресурсами

Сеть

 Устранение неполадок

 systemd не запускается: Failed to fork off sandboxing environment

Причина: Конфликт cgroups v1 (хост) и v2 (контейнер Ubuntu 24.04).

Решение: Включить cgroups v2 на хосте:

Альтернатива: Использовать Ubuntu 22.04 в контейнере — он совместим с cgroups v1.

 Контейнер не видит сеть

 Btrfs: is not a valid backing storage type

Причина: Бэкенд btrfs требует, чтобы /var/lib/lxc находился на разделе Btrfs.

Решение: Используйте бэкенд loop с --fstype btrfs:

 Нет доступа по SSH


 Полезные ссылки


 Структура файлов LXC

/var/lib/lxc/
├── <container-name>/
│ ├── config # Конфигурация контейнера
│ ├── rootfs/ # Корневая ФС (или ссылка на loop-файл)
│ ├── rootfs.disk # Файл-образ (для бэкенда loop)
│ └── snaps/ # Снапшоты (для Btrfs)
│ ├── snap0/
│ └── snap1/
└── lxc.conf # Глобальный конфиг (редко используется)

/etc/lxc/
├── default.conf # Шаблон для новых контейнеров
└── lxc-net.conf # Настройки сетевой службы


Совет: Всегда тестируйте восстановление из бэкапа на тестовом контейнере перед удалением оригинала. Бэкап без проверки восстановления — не бэкап.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

*

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">