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

LXD не работает на виртуальных машинах вроде QEMU أو VirtualBox , что означает, что это очень быстро, обеспечивая скорость выполнения, близкую к локальной.
Быстрые ссылки
Установить и настроить LXD
Откройте Терминал и установите LXD, а также утилиты ZFS, которые помогут ускорить некоторые процессы и сэкономить место на диске при работе с контейнерами.
sudo apt install zfsutils-linux lxd

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

Поиск и запуск образа LXD
Чтобы перечислить все образы Ubuntu:
список образов lxc ubuntu: arch=amd64

Будет много результатов. Ты можешь выбрать опустить arch = amd64 Если вам нужны образы для других платформ, например процессоров ARM (устройства Raspberry Pi используют эту архитектуру).
На предыдущем изображении результаты были ограничены (с | головой), чтобы их было легче читать. Показан отпечаток пальца Убунту 18.04 (84a71299044b). Если вы хотите запустить контейнер с этим дистрибутивом, команда будет такой:
lxc запуск ubuntu: 84a71299044b
На данный момент это вернется с ошибкой отказано в разрешении. Вы должны быть в группе "lxd". Ваш пользователь уже был добавлен в эту группу, но для ее активации вы должны выйти и снова войти в систему. Если вы хотите избежать этого, используйте эту команду, заменив «user» своим именем пользователя:
exec su - пользователь

Теперь команды lxc работают без использования sudo.
Запуск контейнеров LXD с дистрибутивами, отличными от Ubuntu
Эта команда покажет вам другие доступные дистрибутивы:
список образов lxc образы: arch=amd64
Чтобы начать изображение, вместо отпечатка пальца вы также можете использовать псевдоним, если вы видите его в этом списке.
образы запуска lxc:debian/9

Если вы добавите строку в конце, вы можете выбрать имя для своего контейнера:
lxc запускает изображения:debian/9 wordpress-site
Управление контейнерами LXD
Чтобы перечислить все контейнеры:
lxc список

столбец "IPV4Особенно важно, если в этом случае у вас запущены какие-либо службы. Например, если сервер Апач http запущенный в экземпляре, запись «10.234.232.246В браузере отобразится веб-сайт, размещенный в контейнере.
Чтобы остановить контейнер:
lxc stop имя_контейнера
Это может занять много времени (или потерпеть неудачу) с дистрибутивами, отличными от Ubuntu. Лучше достаньте обертку для контейнера, а когда войдете внутрь, залезете внутрь выключение системы чтобы выключить его.
Если ничего не помогает, вы можете принудительно остановиться с помощью:
lxc stop имя_контейнера --force
Для его запуска:
lxc start имя_контейнера
Чтобы перемещаться внутри вашего контейнера:
lxc shell имя_контейнера

Вы можете установить программное обеспечение с помощью «sudo ап установитьИ сделайте все, что вы сделали бы в обычном дистрибутиве Linux, например, настройте сервер Apache. Если вы хотите выйти из контейнера, просто введите:
выход
Передача файлов в / из контейнеров LXD
Чтобы загрузить файл в свой контейнер:
lxc файл push /путь/к/локальному/файлу имя_контейнера/путь/к/загруженному/файлу
Включите имя создаваемого файла, а не только каталог, в который вы хотите его смонтировать. Вот пример:
lxc файл push lxd-apt-install.png exact-colt/var/www/website/upload.png
Чтобы загрузить каталог вместо файла:
lxc file push /путь/к/локальному/каталогу имя_контейнера/путь/к/удалённому/каталогу --recursive --verbose
Пример:
lxc файл push /bin exact-colt/tmp --recursive --verbose
Чтобы загрузить каталог из вашего контейнера в основную операционную систему:
извлечение файла lxc имя_контейнера/путь/к/удалённому/каталогу /путь/к/локальному/каталогу --recursive --verbose
Пример:
lxc файл pull exact-colt /tmp /tmp --recursive --verbose
Заключение
Это покрывает Основное использование контейнеров LXD. Есть более продвинутые функции, такие как моментальные снимки и возврат, ограничения ресурсов, такие как Процессор وбаран , контейнеры для клонирования и т. д. Это может быть рассмотрено в будущем руководстве, если мы заметим, что читатели заинтересованы в этой теме.










