ГлавнаяОперационные системыLinuxВведение в контейнеры LXD Ubuntu

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

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

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

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

Установить и настроить LXD

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

sudo apt install zfsutils-linux lxd

lxd-apt-install

Начать настройку LXD.

sudo lxd init

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

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

lxd-init-вопросы

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

Чтобы вывести список всех обр

Установить и настроить LXD

ge list ubuntu: arch=amd64

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

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

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

у).

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

lxc launch ubuntu:84a71299044b

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

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.

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

pan>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 <

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

ose

Пример:

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. Существуют более продвинутые функции, такие как снимки и откаты, наложение ограничений на такие ресурсы, как ЦП и ОЗУ, клонирование контейнеров и т. д. Они могут быть рассмотрены в следующем руководстве, если мы заметим, что читатели заинтересованы в этой теме.

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

Заключение

ПОХОЖИЕ СТАТЬИ

Популярные записи