
В течение последнего десятилетия сообщество разработчиков ПО с открытым исходным кодом наблюдало устойчивый переход к контейнеризации как предпочтительному способу развертывания. приложений благодаря многочисленным преимуществам, которые он предлагает, таким как портативность, гибкость, повышенная безопасность и более простое управление Приложения. Популярные технологии контейнеризации включают: Докер, Подман, и LXD.
Написано на языке го, LXD (произносится как Лексид) описывается как системный контейнер и диспетчер виртуальных машин следующего поколения, который позволяет вам управлять своими контейнерами и виртуальными машинами из командной строки или с помощью REST API или другие сторонние инструменты. LXD является проектом с открытым исходным кодом и является расширением LXC (Контейнеры Linux), которая представляет собой технологию виртуализации на уровне ОС.
LXC появился на свет примерно в 2008 году, и LXD был запущен 7 лет спустя в 2015 году с теми же строительными блоками, что и LXC. LXD пришли к тому, чтобы сделать контейнеры более удобными и простыми в управлении.
Являясь продолжением LXC, LXD предоставляет расширенные функции, такие как моментальные снимки и динамическая миграция. Он также предоставляет демон, который позволяет легко управлять контейнерами и виртуальными машинами. Он не предназначен для замены LXC, скорее, он направлен на улучшение удобства использования и обработки контейнеров на базе LXC.
В этом руководстве мы продемонстрируем, как вы можете создавать и управлять LXC контейнеры с использованием LXD на Debian / Ubuntu.
Первый шаг - установка LXD. Есть два способа сделать это, вы можете установить из репозитория Ubuntu, используя Менеджер пакетов APT или вы можете использовать щелчок.
С использованием APT, сначала обновите систему:
$ sudo apt update.
Затем установите LXD системный контейнерный гипервизор следующим образом.
$ sudo apt install lxd.
С использованием щелчок, вы можете установить последнюю версию LXD.
$ sudo snap install lxd.
Кроме того, вы можете установить последнюю версию LTS, которая LXD 4.0 следующее:
$ sudo snap install lxd --channel = 4.0 / стабильный.
Вы можете проверить версию LXD установлен как показано:
$ lxd --version.
Если вы привыкли щелчок, вы можете убедиться, что LXD Пакет snap был установлен, как показано:
$ snap list.
Чтобы инициализировать или запустить LXD гипервизор контейнера, выполните команду:
$ sudo lxd init.
Команда представляет вам набор вопросов о том, как настроить LXD. Значения по умолчанию работают нормально, однако вы можете указать свои собственные настройки в соответствии с вашими требованиями.
В этом примере мы создали пул хранения под названием tecmint_pool с ZFS файловая система и менеджер томов. По остальным вопросам мы выбрали параметры по умолчанию. Простой способ принять выбор по умолчанию - нажать кнопку ENTER на клавиатуре.
Подтвердите предоставленную информацию, выполнив команду:
Профиль $ sudo lxc показывает значение по умолчанию.
Вы можете еще больше сузить его до созданного пула хранения. Команды ниже отображают подробную информацию о текущих пулах хранения.
Список хранилищ $ sudo lxc. $ sudo lxc storage show tecmint_pool.
Вы также можете отобразить информацию об используемом сетевом интерфейсе с помощью LXD, в таком случае, lxdbr0, который выбран по умолчанию.
$ sudo lxc network show lxdbr0.
Теперь давайте переключимся и создадим контейнеры Linux. Вы можете перечислить все готовые контейнеры, доступные для загрузки, используя команду:
$ sudo lxc список изображений изображений:
Это заполняет огромный список всех контейнеров в различных операционных системах, таких как Ubuntu, CentOS, Debian и AlmaLinux, и это лишь некоторые из них.
Вы можете сузить его до определенного распределения следующим образом:
$ sudo lxc список изображений изображений: | grep -i centos. $ sudo lxc список изображений изображений: | grep -i debian.
В этом примере мы перечисляем доступные контейнеры.
$ sudo lxc список изображений изображений: | grep -i убунту.
Теперь мы собираемся создать наш первый контейнер. Синтаксис для создания контейнера следующий:
$ sudo lxc запускает образы: {distro} / {version} / {arch} {имя-контейнера}
Теперь мы собираемся создать два контейнера из Ubuntu 20 и Debian 10 соответственно:
$ sudo lxc запускает образы: ubuntu / focal tecmint-con1. $ sudo lxc запускает образы: debian / 10 tecmint-con2.
В приведенных выше примерах мы создали два контейнера: tecmint-con1 и tecmint-con2.
Чтобы вывести список созданных контейнеров, выполните команду:
Список $ sudo lxc.
Из выходных данных мы видим в списке два наших контейнера.
Чтобы получить доступ к оболочке LXC контейнер запустите команду:
$ sudo lxc exec tecmint-con1 bash.
Как только вы получили доступ к оболочке, обратите внимание, что приглашение изменится, показывая, что вы работаете как пользователь root.
Для выхода из контейнера выполните команду:
$ exit.
Теперь давайте рассмотрим некоторые команды, которые вы можете использовать для управления LXD контейнеры.
Чтобы вывести список всех запущенных контейнеров, выполните команду:
Список $ sudo lxc.
Чтобы отобразить подробную информацию о LXC контейнер, используйте синтаксис:
$ sudo lxc info имя-контейнера.
Это предоставит вам такую информацию, как имя контейнера, архитектура, дата создания, состояние сетевых интерфейсов, пропускная способность, ЦП, память и использование диска, а также некоторые показатели.
Чтобы остановить LXC контейнер, используйте синтаксис:
$ sudo lxc stop имя-контейнера.
Например, чтобы остановить контейнер tecmint-con1, выполните команду:
$ sudo lxc stop tecmint-con1.
Опять же, перечислите контейнеры, чтобы подтвердить, что контейнер был остановлен.
Список $ sudo lxc.
В качестве альтернативы вы можете перечислить запущенные или остановленные контейнеры следующим образом:
Список $ sudo lxc | grep -i ОСТАНОВЛЕН. Список $ sudo lxc | grep -i РАБОТАЕТ.
Чтобы начать LXC контейнер, используйте синтаксис:
$ sudo lxc start имя-контейнера.
Например, чтобы запустить контейнер tecmint-con1 запустите команду:
$ sudo lxc start tecmint-con1.
Вы можете запускать или останавливать контейнеры в обход их одной командой, разделенной пробелом, используя следующий синтаксис:
$ sudo lxc stop container1 container2. $ sudo lxc start container1 container2.
Например, чтобы остановить все контейнеры, запустите:
$ sudo lxc stop tecmint-con1 tecmint-con2.
Чтобы перезапустить LXC контейнер, используйте синтаксис:
$ sudo lxc перезапустить имя-контейнера.
Например, чтобы перезапустить контейнер tecmint-con1 запустите команду:
$ sudo lxc restart tecmint-con1.
Кроме того, вы можете передать несколько контейнеров одной командой:
$ sudo lxc start container1 container2.
Например, чтобы перезапустить все контейнеры, запустите:
$ sudo lxc restart tecmint-con1 tecmint-con2.
Чтобы удалить LXC контейнер, сначала остановите его, а затем удалите. Например, чтобы удалить контейнер tecmint-con2, запустите команду:
$ sudo lxc stop tecmint-con2. $ sudo lxc удалить tecmint-con2.
Это руководство предоставило вам прочную основу для LXD контейнеры и как вы можете запускать, создавать и управлять контейнерами. Мы надеемся, что теперь вы можете с комфортом запускать свои контейнеры и управлять ими без особых трудностей.