Як встановити LXC та LXC UI на Ubuntu 24.04 | 22.04

Як встановити 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/ у своєму браузері, щоб отримати доступ до інформаційної панелі.

Як встановити LXC та LXC UI на Ubuntu 24.04

Увійдіть за допомогою admin користувача та admin пароля. Не забудьте змінити пароль після входу в систему.

Оновлення веб-панелі LXC

Щоб виконати автоматичне оновлення, виконайте команди:

wget https://lxc-webpanel.github.io/tools/update.sh -O - | sudo bash

Тепер у вашій системі Ubuntu встановлено LXC та LXC Web Panel. Насолоджуйтесь використанням інструментів для запуску контейнерів у вашій системі.

Прокрутка до верху