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

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

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

Подробное введение в контейнеры LXD в Ubuntu - Linux

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

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

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

sudo apt install zfsutils-linux lxd

Подробное введение в контейнеры LXD в Ubuntu - Linux

Запустите конфигурацию LXD.

sudo lxd init

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

Для размера в ГБ для нового устройства цикла (минимум 1 ГБ) [по умолчанию = 15 ГБ] вы можете выбрать другое значение, например «50 ГБ», если вы знаете, что будете создавать много контейнеров.

Подробное введение в контейнеры LXD в Ubuntu - Linux

Поиск и запуск образа LXD

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

lxc image list ubuntu: arch=amd64
Подробное введение в контейнеры LXD в Ubuntu - Linux

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

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

lxc launch ubuntu: 84a71299044b

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

exec su - user
Подробное введение в контейнеры LXD в Ubuntu - Linux

Теперь команды lxc работают без использования sudo.

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

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

lxc image list images: arch=amd64

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

lxc launch images:debian/9
Подробное введение в контейнеры LXD в Ubuntu - Linux

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

lxc launch images:debian/9 wordpress-site

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

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

lxc list
Подробное введение в контейнеры LXD в Ubuntu - Linux

столбец "IPV4Особенно важно, если в этом случае у вас запущены какие-либо службы. Например, если сервер Апач http запущенный в экземпляре, запись «10.234.232.246В браузере отобразится веб-сайт, размещенный в контейнере.

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

lxc stop name_of_container

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

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

lxc stop name_of_container --force

Для его запуска:

lxc start name_of_container

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

lxc shell name_of_container
Подробное введение в контейнеры LXD в Ubuntu - Linux

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

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. Есть более продвинутые функции, такие как моментальные снимки и возврат, ограничения ресурсов, такие как Процессор وбаран , контейнеры для клонирования и т. д. Это может быть рассмотрено в будущем руководстве, если мы заметим, что читатели заинтересованы в этой теме.

Перейти к верхней кнопке