Як встановити LXC та LXC UI на Ubuntu 24.04| 22.04
LXC — це легка технологія віртуалізації, яка використовується для запуску кількох ізольованих віртуальних модулів, які часто називають контейнерами, у середовищі chroot на одному хості з використанням одного ядра Linux.
Деякі поширені терміни, що використовуються з LXC, включають:
- chroot – Chroot, який також називають change root або change root jail, – це розділ у файловій системі, який ізольований від решти файлової системи. Програма, виконана в цьому середовищі, не може отримати доступ до файлів за межами призначеного дерева каталогів.
- cgroups – Це функція ядра, яка дозволяє агрегувати або розділяти завдання (процеси) та всі їхні дочірні елементи на ієрархічно організовані групи для ізоляції ресурсів.
Як встановити LXC на Ubuntu
LXC можна легко встановити на Ubuntu з основних репозиторіїв за допомогою наступних команд:
sudo apt update && sudo apt install lxc
Наведена вище команда встановить пакет lxc та всі необхідні залежності, а потім налаштує стандартну мережу контейнерів. Назва мосту – lxcbr0:
$ ip ad | grep lxc
3: lxcbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000
inet 10.0.3.1/24 scope global lxcbr0
Після встановлення визначте відповідності uid для запуску контейнерів від імені користувача, який не є користувачем root. Дивіться документацію на сторінці підручника LXC для більш детальної інформації.
# Create directory if it doesn't exist
mkdir -p ~/.config/lxc# Add configs required
echo "lxc.include = /etc/lxc/default.conf" > ~/.config/lxc/default.conf
echo "lxc.idmap = u 0 100000 65536" >>~/.config/lxc/default.confecho "lxc.idmap = g 0 100000 65536" >>~/.config/lxc/default.conf
echo "lxc.net.0.type = veth" >> ~/.config/lxc/default.conf
echo "lxc.net.0.link = lxcbr0" >> ~/.config/lxc/default.confecho "lxc.net.0.link = lxcbr0" >> ~/.config/lxc/default.conf
echo "$USER veth lxcbr0 2" | sudo tee -a /etc/lxc/lxc-usernet
Список поточних налаштувань LXC:
$ lxc-config -l
lxc.default_config
lxc.lxcpath
lxc.bdev.lvm.vg
lxc.bdev.lvm.thin_pool
lxc.bdev.zfs.root
lxc.cgroup.use
lxc.cgroup.pattern
Як використовувати LXC на Ubuntu
Ви можете використовувати LXC у двох режимах:
- Привілейований – це коли ви виконуєте команди lxc від імені користувача root.
- Непривілейований – це коли ви виконуєте команди від імені користувача, який не має root.
Нижче наведено приклад основних команд для створення контейнера LXC.
# Ubuntu 24.04
lxc-create -t download \
-n mylxc-ubuntu -- \
--dist ubuntu \
--release noble \
--arch amd64
# Ubuntu 22.04
lxc-create -t download \
-n mylxc-ubuntu -- \
--dist ubuntu \
--release jammy \
--arch amd64
Де:
- -n для назви контейнера
- -t за шаблон.
Якщо ви отримуєте повідомлення про помилку “ERROR: Unable to fetch GPG key from keyserver“, ви можете скористатися опцією:--no-validate
lxc-create -t download \
-n mylxc-ubuntu -- \
--dist ubuntu \
--release jammy \
--arch amd64 \
--no-validate
Приклад :
Downloading the image index
WARNING: Running without gpg validation!
Downloading the rootfs
Downloading the metadata
The image cache is now ready
Unpacking the rootfs
---
You just created an Ubuntu jammy amd64 (20240713_07:42) container.
To enable SSH, run: apt install openssh-server
No default root or user password are set by LXC.
Після створення контейнера він не запускається за замовчуванням. Ви можете переглянути список усіх контейнерів lxc за допомогою:
$ lxc-ls
mylxc-ubuntu
Щоб запустити контейнер, запустіть:
$ lxc-start -n <container-name>
# Example
$ lxc-start -n mylxc-ubuntu
Встановіть LXC Web UI на Ubuntu
Існує декілька інструментів, за допомогою яких можна керувати контейнерами LXC. У цій статті ми встановимо та використаємо веб-панель LXC. Виконайте цю команду, щоб встановити його:
wget https://lxc-webpanel.github.io/tools/install.sh -O - | sudo bash
Це автоматично встановить і налаштує для вас веб-інтерфейс LXC. Після встановлення ви отримаєте вихідні дані, подібні до наведених нижче.
_ __ _______ __ __ _ _____ _
| | \ \ / / ____| \ \ / / | | | __ \ | |
| | \ V / | \ \ /\ / /__| |__ | |__) |_ _ _ __ ___| |
| | > <| | \ \/ \/ / _ \ '_ \ | ___/ _` | '_ \ / _ \ |
| |____ / . \ |____ \ /\ / __/ |_) | | | | (_| | | | | __/ |
|______/_/ \_\_____| \/ \/ \___|_.__/ |_| \__,_|_| |_|\___|_|
Automatic installer
Installing requirement...
+ Installing Python
+ Installing Python pip
E: Package 'python-pip' has no installation candidate
| + Flask Python...
Cloning LXC Web Panel...
Cloning into '/srv/lwp'...
remote: Enumerating objects: 243, done.
remote: Total 243 (delta 0), reused 0 (delta 0), pack-reused 243
Receiving objects: 100% (243/243), 198.33 KiB | 9.92 MiB/s, done.
Resolving deltas: 100% (108/108), done.
Installation complete!
Adding /etc/init.d/lwp...
Done
Starting server...done.
Connect you on http://your-ip-address:5000/
Як бачите, сервіс слухає на порту 5000. Якщо у вас є брандмауер, відкрийте порт, щоб отримати доступ до нього з віддаленого пристрою
sudo ufw allow 5000
Тепер ви можете відкрити URL-адресу http://your-ip-address:5000/ у своєму браузері, щоб отримати доступ до інформаційної панелі.
Увійдіть за допомогою admin користувача та admin пароля. Не забудьте змінити пароль після входу в систему.
Оновлення веб-панелі LXC
Щоб виконати автоматичне оновлення, виконайте команди:
wget https://lxc-webpanel.github.io/tools/update.sh -O - | sudo bash
Тепер у вашій системі Ubuntu встановлено LXC та LXC Web Panel. Насолоджуйтесь використанням інструментів для запуску контейнерів у вашій системі.