|
||||||||||||||||||||||||||||||||||||||||||
Справка по LXD/LXC (Контейнеры Linux)
Время создания: 13.01.2021 13:41
Автор: alensav
Текстовые метки: Справка по LXD/LXC (Контейнеры Linux)
Раздел: !!LXD
Запись: alensav/MyTetra2/main/base/1610534518eoihnysbh8/text.html на raw.githubusercontent.com
|
||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||
L XD/LXC (Linux Containers) manual / Справка по LXD/LXC (Контейнеры Linux) 05.01.2019 zotovp До открытия для себя LXC я использовал для изоляции сервисов на домашнем сервере chroot. Да, технология не новая, однако хорошо себя зарекомендовавшая. Но, к счастью, прогресс технологий в наше время дает нам все более совершенные инструменты, среди которых я порой нахожу вещи, которые не могут не радовать технофила. Далее расскажу, как можно организовать домашний сервер так, чтобы было удобно им управлять, бекапить и создавать сервисы, которые будут независимы и безопасно разделены между собой. 1. Основа LXC это набор инструментов для контейнеризации целых ОС, в отличии от Докера, который больше заточен под релизы и тесты для разработчиков, тут больше пространства для маневра, без надобности вдаваться сильно в зависимости и синтаксис конфигурационных файлов. Серьезно, для домашних служб Докер монстровато выглядит. Ладно, хватит субъективностей, раз я LXC выбрал, расскажу тут все полезное, что раскопал, пока строил заново домашние сервисы на новой платформе. Первое, что и очень важное, это выбор хостовой системы для нашего контейнерного парка. К слову, я пробовал реализации lxc/lxd на debian, arch, centos, ubuntu, и выиграл по многим параметрам по моему мнению ubuntu 18.04 LTS. Не буду тут все расписывать подробно за и против, решайте сами что кому по душе. Итак, я установил хостовую систему ubuntu 18.04 LTS. Настроил по своему вкусу безопасность и остальное, что мы там любим настроить на свежей системе. Перейдем к делу. 2. Служба LXD Да, тут важно знать, что в выбранном мною ubuntu server 18.04 LTS по умолчанию уже есть демон LXD, поэтому установка тут описываться не будет. LXD это надстройка над LXC, гипервизор, который упрощает взаимодействие с системой контейнеризации. Если хочется подробнее почитать, что это, то вот ссылка . 3. Возможности Самая полезная часть статьи — рецепты, как и что можно использовать с помощью LXD Поехали Инициализация LXD Первый запуск предупредит о том, что мы должны инициализировать через команду lxd_init систему контейнеризации, то есть указать начальные настройки. Запускаем и дальше как по мастеру. Отвечаем на вопросы по своему вкусу. #lxd_init
Создание нового контейнера Если нужно просто создать контейнер, но не запускать его, достаточно выполнить команду: #lxc init ubuntu:18.04 container1
Положить/забрать файл из контейнера. LXC предоставляет хорошие возможности для управления контейнерами «на лету». Вот так, например, можно поместить созданный на основном хосте файл внутрь контейнера: #lxc file push [путь к файлу на основном хосте] [контейнер]/[путь]
#lxc file push tmp/dialplan.xml asterisk/tftproot/
Можно совершить и обратную операцию — загрузить файл из контейнера на основной хост: #lxc file pull [контейнер]/[путь]
Редактирование файлов из основной системы Можно и редактировать файлы в контейнере напрямую: #lxc edit [контейнер]/[путь]
Создать общий ресурс #lxc config device add [контейнер] [имя_ресурса] [тип, к примеру disk] path=[путь_внутри_контейнера] source=[пусть_на_хостовой_системе]
Что-то выполнить в контейнере #lxc exec container1 -- apt-get update
Сделать снапшот этого контейнера #lxc snapshot container1 [имя_снапшота]
Восстановить работу контейнера #lxc restore container1 new
Импорт различных образов LXD основан на образах. Контейнеры создаются из образа, поэтому хранилище образов должно содержать несколько образов перед основной работой с LXD.
#lxc image import <file> --alias <name>
Использование удаленного LXD как сервера образов Использование удаленного сервера образов также просто, как его добавление и использование: #lxc remote add images 1.2.3.4
#lxc launch images:image-name your-container
Список контейнеров и их статусов в системе #lxc list
Список доступных образов в списке #lxc image list images:
Клонировать и экспортировать образ рабочего контейнера #lxc publish CONTAINER_NAME/SNAPSHOT_NAME --alias my-export
#lxc image export my-export .
Импорт образа в систему и создание контейнера на его основе #lxc image import TARBALL --alias my-export
#lxc init my-export NEW-CONTAINER
Создание пула для хранения образов #lxc storage create store-name dir source=/var/snap/cryptdata/storage/
Локация для хранения профиля по умолчанию #lxc profile device add default root disk path=/ pool=media
Просмотреть доступные снапшоты контейнера #lxc info example --verbose
Связать с определннным мостом и задать статический IPv4 адрес Кстати, очень удобный инструмент, позволяющий держать систему в нескольких или различных сетях на одном хосте, при этом в основной системе требуется для этого организовать лишь интерфейс типа мост, к которому потом прикрепляем контейнер и задаем внутреннее имя интерфейса. #lxc network attach testbr0 c1 eth0
#lxc config device set c1 eth0 ipv4.address 10.0.3.123
Если хотим удалить мост, который создается lxc Редактируем файл «/etc/default/lxc-net» и меняем USE_LXC_BRIDGE="true"
USE_LXC_BRIDGE="false"
Переместить пул хранилища Я люблю хранить все конфигурации в определенном мною месте, поэтому тут способ, как переместить дефолтное хранилище наиболее безболезненно. Останавливаем LXD, перемещаем содержимое /var/lib/lxd в новую директорию, после этого делаем симлинк на новое место, и можно запускать LXD #ln -s /mnt/largepool/lxd /var/lib/lxd
Позволить не-root пользователю управлять системой контейнеризации LXD #usermod --append --group lxd freeman
Проброс устройств Шикарная возможность, позволяющая пробрасывать устройства внутрь контейнера, основываясь на vendor/product id, так как многие usb устройства любят менять свой номер устройства на шине pci (в листинге вывода lsusb). Подробнее по параметрам тут . #lxc config device add pcsx2 ps3controllerblack usb vendorid=054c productid=0268
Автозапуск контейнера при запуске основной системы Флаг автозапуска и приоритеты запуска, для того, чтобы определить очередность запуска контейнеров и задержку перед запуском #lxc config set {vm-name} boot.autostart true
#lxc config set {vm-name} boot.autostart.priority integer
#lxc config set {vm-name} boot.autostart.delay integer
Скрипт для просмотра вышеуказанных параметров автозапуска всех контейнеров #!/bin/bash
x=$(lxc list -c n | awk '{ print $2}' | sed -e '/^$/d' -e '/^NAME/d')
echo 'The current values of each vm boot parameters:'
for c in $x
do
echo "*** VM: $c ***"
for v in boot.autostart boot.autostart.priority boot.autostart.delay
do
echo "Key: $v => $(lxc config get $c $v)"
done
echo ""
done
Вот, в кратце все команды, что могут пригодиться поначалу. Пожаловаться на это объявление Install OpenVPN to LXD(lxc) on Ubuntu with WEB GUI panel (monitoring & management) / Установка OpenVPN на LXD(lxc) на Ubuntu с ВЕБ-интерфейсом (управление и мониторинг) В "Администрирование" Install hass.io (home assistant) inside LXD (lxc) on Ubuntu 18.04 LTS - privileged Docker container inside LXD (lxc) / Установка hass.io (home assistant) внутри контейнера LXD на Ubuntu 18.04 LTS - запуск привилегированного контейнера внутри LXD (lxc) В "Docker" Setup TFTP server on Linux/Настройка TFTP сервера на Linux В "Debian" Администрирование , Гипервизоры , Программное обеспечение , Linux/Unix , LXC/LXD , Ubuntu lxc , lxd , Ubuntu Previous Article Telegram bot (library pyTelegramBotAPI) / Бот Телеграма (библиотека pyTelegramBotAPI) Next Article Setup TFTP server on Linux/Настройка TFTP сервера на Linux
Архивы
Январь 2019
« Дек Апр » Метки Active Directory ActiveSync apache2 apt-get bash boot bridge centos cmd debian Docker elementaryOS eve-ng firewall freebsd fstab grub howto install interface iou iPad iptables iso language Lenovo Yoga 2 Pro linux lxc lxd Microsoft Exchange Microsoft Windows Microsoft Windows 7 Microsoft Windows 10 mikrotik mount MySQL nat netsh nginx node.js npm ntp OpenVPN Outlook perl php-fpm port PostgreSQL Power Shell Python RDP red hat rsa key samba script singlemode sound sources ssh systemd TCP/IP teamviewer telnet Ubuntu UNetLab unix uuid vm VMWare w32tm WiFi windows xen xrdp Zabbix |
||||||||||||||||||||||||||||||||||||||||||
Так же в этом разделе:
|
||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||
|