Введение в контейнеры LXD Ubuntu

Введение в контейнеры LXD Ubuntu
⏱️ 1 min read

Контейнеры полезны по многим причинам. Они изолируют приложения от остальной системы. Они портативны, их легко клонировать и/или переносить на другие операционные системы. А в случае Linux они работают одинаково под любым дистрибутивом, без необходимости адаптации. Если вам нужно переместить контейнер из RedHat в Ubuntu, это должна быть простая операция копирования.

Docker — это популярное решение, предназначенное для размещения одного приложения: например, сервера базы данных MySQL. LXD в чем-то похож, но предназначен для хранения всей операционной системы. Это делает его полезным для некоторых сценариев. Например, вы можете развернуть контейнер LXD, установить сервер базы данных и http-сервер. Затем вы можете создать веб-сайт WordPress внутри. Теперь вы можете переключаться с облака на облако, просто перемещая этот контейнер LXD туда, где он нужен, когда вы недовольны своим предыдущим поставщиком. А поскольку контейнер легко клонировать, вы даже можете загрузить свой веб-сайт в несколько облачных провайдеров, чтобы создать избыточную установку с высокой доступностью.

LXD не виртуализирует аппаратное обеспечение, как это делают QEMU или VirtualBox, что означает, что он очень быстрый, предлагая почти родную скорость выполнения.

Установите и настройте LXD

Откройте терминал и установите LXD, а также утилиты ZFS, которые помогут вам ускорить некоторые операции и сэкономить место на диске при работе с контейнерами.

sudo apt install zfsutils-linux lxd

lxd-apt-установить

Запустите настройку LXD.

sudo lxd init

Нажмите ENTER, чтобы выбрать значения по умолчанию.

За Size in GB of the new loop device (1GB minimum) [default=15GB]вы можете выбрать другое значение, например «50 ГБ», если вы знаете, что создадите много контейнеров.

lxd-init-вопросы

Найдите и запустите образ дистрибутива LXD

Чтобы перечислить все образы Ubuntu:

lxc image list ubuntu: arch=amd64

lxd-ubuntu-изображения

Результатов будет много. Вы можете опустить arch=amd64 если вам нужны образы для других платформ, таких как процессоры ARM (устройства Raspberry Pi используют такую ​​архитектуру).

На предыдущем рисунке результаты были ограничены (с |head) для облегчения чтения. Отпечаток пальца Ubuntu 18.04 (84a71299044b) выделен. Если вы хотите запустить контейнер с этим дистрибутивом, команда будет выглядеть так:

lxc launch ubuntu:84a71299044b

На данный момент это вернет ошибку отказа в разрешении. Вы должны быть в группе «lxd». Ваш пользователь уже добавлен в эту группу, но чтобы сделать ее активной, вам нужно выйти из системы и снова войти в нее. Если вы хотите избежать этого, используйте эту команду, заменив «user» на ваше имя пользователя:

exec su - user

lxd-пользовательские-активные-группы

Теперь команды lxc работают без sudo.

Запуск контейнеров LXD с дистрибутивами, отличными от Ubuntu

Эта команда покажет вам, какие другие дистрибутивы доступны:

lxc image list images: arch=amd64

Чтобы запустить изображение, вместо отпечатка пальца вы также можете использовать псевдоним, если вы видите его в этом списке.

lxc launch images:debian/9

lxd-запуск-debian-9

Если вы добавите строку в конце, вы можете выбрать имя для своего контейнера:

lxc launch images:debian/9 wordpress-site

Управление контейнерами LXD

Чтобы перечислить все контейнеры:

lxc list

lxd-lxc-список

Столбец «IPV4» особенно важен, если у вас есть запущенные службы на этом экземпляре. Например, если на экземпляре будет работать http-сервер Apache, ввод «10.234.232.246» в браузере отобразит веб-сайт, размещенный в контейнере.

Чтобы остановить контейнер:

lxc stop name_of_container

Это может занять очень много времени (или завершиться ошибкой) с дистрибутивами, отличными от Ubuntu. Лучше достать снаряд до контейнера, а попав внутрь, войти systemctl poweroff остановить это.

Если ничего не помогает, вы можете принудительно остановиться с помощью:

lxc stop name_of_container --force

Чтобы начать:

lxc start name_of_container

Чтобы переместиться внутри вашего контейнера:

lxc shell name_of_container

lxd-shell-debian

Вы можете устанавливать программы с помощью «sudo apt install» и делать все, что вы делаете в обычном дистрибутиве Linux, например, настраивать сервер Apache. Когда вы хотите выйти из контейнера, просто введите:

exit

Передача файлов в/из контейнеров LXD

Чтобы загрузить файл в контейнер:

lxc file push /path/to/local/file name_of_container/path/to/uploaded/file

Укажите имя создаваемого файла, а не только каталог, в который вы хотите его загрузить. Вот пример:

lxc file push lxd-apt-install.png accurate-colt/var/www/website/upload.png

Чтобы загрузить каталог вместо файла:

lxc file push /path/to/local/directory name_of_container/path/to/remote/directory --recursive --verbose

Пример:

lxc file push /bin accurate-colt/tmp --recursive --verbose

Чтобы загрузить каталог из контейнера в основную операционную систему:

lxc file pull name_of_container/path/to/remote/directory /path/to/local/directory --recursive --verbose

Пример:

lxc file pull accurate-colt/tmp /tmp --recursive --verbose

Вывод

Это охватывает основное использование контейнеров LXD. Есть более продвинутые функции, такие как моментальные снимки и откаты, наложение ограничений на такие ресурсы, как ЦП и ОЗУ, клонирование контейнеров и так далее. Они могут быть рассмотрены в будущем учебнике, если мы заметим, что читатели заинтересованы в этой теме.

Join our Newsletter and receive offers and updates! ✅

0 0 голоса
Article Rating
Аватар Routech

Routech

Routech is a website that provides technology news, reviews and tips. It covers a wide range of topics including smartphones, laptops, tablets, gaming, gadgets, software, internet and more. The website is updated daily with new articles and videos, and also has a forum where users can discuss technology-related topics.

Подписаться
Уведомить о
guest
0 Comments
Межтекстовые Отзывы
Посмотреть все комментарии
0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x