Начало работы с LXD открывает путь к эффективному и лёгкому управлению контейнерами и виртуальными машинами в Linux. LXD — это мощный менеджер системных контейнеров и ВМ, который упрощает развёртывание и управление контейнерами Linux, что делает его идеальным решением для размещения веб-приложений, тестовых сред и развёртывания микросервисов. Он устраняет разрыв между традиционной виртуализацией и контейнеризацией, обеспечивая гибкость и производительность для современных инфраструктурных задач.
В этой статье мы шаг за шагом покажем на практическом примере, как установить контейнер с помощью LXD и управлять им. Кроме того, мы приведём краткую шпаргалку в формате таблицы, которая поможет быстро найти основные команды LXD, чтобы у вас были инструменты для оптимизации рабочих процессов управления контейнерами.
Предыдущие статьи:
01. Введение в Ubuntu Server – SysOSX: AI & Cloud
02. Как настроить первый сервер Ubuntu: руководство для начинающих – SysOSX: AI & Cloud
03.Освоение командной строки Linux для Ubuntu Server – SysOSX: AI & Cloud
05. Основы сетей для Ubuntu Server: подробное руководство – SysOSX: AI & Cloud
07.Установка исправлений и обновление Ubuntu Server: подробное руководство – SysOSX: AI & Cloud
08. Защита сервера Ubuntu: практические шаги по усилению защиты – SysOSX: AI & Cloud
09. Аудит и ведение журналов Ubuntu Server
10. Инструменты мониторинга системы для Ubuntu Server: подробное руководство – SysOSX: AI & Cloud
12. Аудит и соответствие требованиям для Ubuntu Server: рекомендации – SysOSX: AI & Cloud
13.Настройка сервера Ubuntu для хостинга и веб-приложений: полное руководство – SysOSX: AI & Cloud
14. Размещение нескольких сайтов на одном сервере Ubuntu: полезные советы – SysOSX: AI & Cloud
15. Управление хранилищем и дисками в Ubuntu Server: простое руководство – SysOSX: AI & Cloud
16. Настройка служб общего доступа к файлам в Ubuntu Server: полное руководство – SysOSX: AI & Cloud
17. Настройка защищённого сервера баз данных в Ubuntu: MySQL и MariaDB – SysOSX: AI & Cloud
18. Как настроить и использовать LVM в Ubuntu Server: подробное руководство – SysOSX: AI & Cloud
19. Введение в виртуализацию с KVM: руководство для начинающих по Ubuntu Server – SysOSX: AI & Cloud
Содержание
Что такое LXD?
LXD — это инструмент управления контейнерами с открытым исходным кодом, построенный на основе Linux Containers (LXC). Он предлагает системные контейнеры, которые ведут себя как виртуальные машины, но работают быстрее и потребляют меньше ресурсов. С помощью LXD вы можете:
- Запускать полные дистрибутивы Linux внутри контейнеров.
- Использовать расширенные сетевые функции и функции хранения.
- Управлять контейнерами удалённо через REST API.
- Переносить контейнеры между хостами с минимальным временем простоя.
Установка LXD с помощью Snap
Рекомендуемый способ установки LXD в современных системах Ubuntu — через Snap. Выполните следующие шаги:
1. Установка Snapd
Убедитесь, что Snap установлен в вашей системе. Если Snap не установлен, выполните:
sudo apt update
sudo apt install snapd
2. Установка LXD
Установите LXD с помощью Snap:
sudo snap install lxd

3. Проверка установки
Проверьте установленную версию LXD:
lxd --version

Демо: использование LXD для установки контейнера
Рассмотрим распространённый сценарий, в котором мы используем LXD для создания контейнера с Ubuntu 22.04 и управления им.
Шаг 1. Инициализация LXD
Выполните следующую команду для инициализации LXD:
sudo lxd init

Вам будет предложено настроить хранилище, сеть и другие параметры. Для простоты можно выбрать параметры по умолчанию.
Шаг 2. Запуск контейнера Ubuntu
Создайте и запустите контейнер с Ubuntu 22.04 с помощью команды:
lxc launch ubuntu:22.04 web-server

Эта команда создаёт контейнер с именем web-server с использованием образа Ubuntu 22.04.
Шаг 3. Доступ к контейнеру
Получите доступ к оболочке контейнера:
lxc exec web-server -- bash

Теперь вы находитесь внутри контейнера и можете устанавливать пакеты или настраивать службы. Например, установите Apache:
apt update
apt install apache2 -y
Запустите службу Apache:
systemctl start apache2
Шаг 4. Проверка сети контейнера
Выйдите из контейнера и проверьте его IP-адрес:
lxc list

Получите доступ к веб-серверу контейнера, открыв его IP-адрес в браузере или проверив подключение с помощью curl http://ip.

Шаг 5. Остановка и удаление контейнера
Когда контейнер больше не нужен, остановите его:
lxc stop web-server
Удалите контейнер:
lxc delete web-server
Шпаргалка по командной строке LXD
Ниже приведена краткая шпаргалка по часто используемым командам LXD:
| Категория | Команда | Описание |
|---|---|---|
| Инициализация | lxd init | Инициализирует LXD перед первым использованием. |
| Создание экземпляров | lxc init <image> <name> | Создаёт контейнер, не запуская его. |
lxc launch <image> <name> | Создаёт и запускает контейнер. | |
lxc launch <image> <name> --vm | Создаёт и запускает виртуальную машину. | |
| Управление экземплярами | lxc list | Выводит список всех экземпляров. |
lxc info <instance> | Отображает информацию об экземпляре. | |
lxc start <instance> | Запускает экземпляр. | |
lxc stop <instance> [--force] | Останавливает экземпляр. | |
| `lxc delete <instance> [–force | –interactive]` | |
| Доступ к экземплярам | lxc exec <instance> -- <command> | Выполняет команду внутри экземпляра. |
lxc exec <instance> -- bash | Предоставляет доступ к оболочке экземпляра. | |
lxc console <instance> | Предоставляет доступ к консоли экземпляра. | |
| Управление файлами | lxc file pull <instance>/<path> <local_path> | Скачивает файл из экземпляра. |
lxc file push <local_path> <instance>/<path> | Отправляет файл в экземпляр. | |
| Проекты | lxc project create <project> | Создаёт проект. |
lxc project set <project> <option> | Настраивает проект. | |
lxc project switch <project> | Переключается на проект. |
Официальный документ:
Первые шаги с LXD
Заключение
LXD упрощает управление контейнерами, что делает его отличным выбором для разработчиков, системных администраторов и DevOps-инженеров. Благодаря лёгкой производительности и возможностям, подобным ВМ, LXD идеально подходит для размещения приложений, тестовых сред и многого другого.
В этой статье мы показали, как использовать LXD для установки контейнера и управления им в распространённом сценарии. Кроме того, шпаргалка даёт возможность быстро найти основные команды LXD.
Следующая тема:
В следующей статье мы расскажем о как пользоваться Podman в Ubuntu Server. Следите за новостями.