Incus: различия между версиями
Строка 3: | Строка 3: | ||
== Установка и настройка == | == Установка и настройка == | ||
Установить пакет {{pkg|incus}}. | Установить пакет {{pkg|incus}}. | ||
# apt-get install incus | <syntaxhighlight lang="console"># apt-get install incus</syntaxhighlight> | ||
После установки создается 2 группы: | После установки создается 2 группы: | ||
incus - Предоставляет базовый пользовательский доступ. | incus - Предоставляет базовый пользовательский доступ. | ||
incus-admin - Обеспечивает полный контроль над Incus. | incus-admin - Обеспечивает полный контроль над Incus. | ||
Предоставить пользователю testuser полный контроль. | Предоставить пользователю testuser полный контроль. | ||
# usermod -a -G incus-admin testuser | <syntaxhighlight lang="console"># usermod -a -G incus-admin testuser</syntaxhighlight> | ||
Применить изменения не перезапуская сессию пользователя. | Применить изменения не перезапуская сессию пользователя. | ||
# newgrp incus-admin | <syntaxhighlight lang="console"># newgrp incus-admin</syntaxhighlight> | ||
Incus требует некоторой начальной настройки сети и хранилища. Это можно выполнить в интерактивном режиме с помощью: | Incus требует некоторой начальной настройки сети и хранилища. Это можно выполнить в интерактивном режиме с помощью: | ||
$ incus admin init | <syntaxhighlight lang="console">$ incus admin init</syntaxhighlight> | ||
Или же базовая автоматизированная конфигурация: | Или же базовая автоматизированная конфигурация: | ||
$ incus admin init --minimal | <syntaxhighlight lang="console">$ incus admin init --minimal</syntaxhighlight> | ||
== Запуск == | == Запуск == |
Версия от 10:52, 28 декабря 2024
Incus — это современная, безопасная и мощная система управления контейнерами и менеджер виртуальных машин.
Установка и настройка
Установить пакет incus.
# apt-get install incus
После установки создается 2 группы:
incus - Предоставляет базовый пользовательский доступ. incus-admin - Обеспечивает полный контроль над Incus.
Предоставить пользователю testuser полный контроль.
# usermod -a -G incus-admin testuser
Применить изменения не перезапуская сессию пользователя.
# newgrp incus-admin
Incus требует некоторой начальной настройки сети и хранилища. Это можно выполнить в интерактивном режиме с помощью:
$ incus admin init
Или же базовая автоматизированная конфигурация:
$ incus admin init --minimal
Запуск
Доступные образы ALT на images.linuxcontainers.org
$ incus image list images:alt
Примерный вывод:
alt/Sisyphus (3 more) | a6bb3268c7a1 | yes | Alt Sisyphus amd64 (20241227_01:17) | x86_64 | CONTAINER | 227.27MB | 2024/12/27 00:00 UTC |
alt/Sisyphus/arm64 (1 more) | 4d860461a016 | yes | Alt Sisyphus arm64 (20241227_01:17) | aarch64 | CONTAINER | 177.23MB | 2024/12/27 00:00 UTC |
alt/Sisyphus/cloud (1 more) | 62d0664ce372 | yes | Alt Sisyphus amd64 (20241227_01:17) | x86_64 | CONTAINER | 183.37MB | 2024/12/27 00:00 UTC |
alt/Sisyphus/cloud/arm64 | 143672c92ab2 | yes | Alt Sisyphus arm64 (20241227_01:17) | aarch64 | CONTAINER | 183.72MB | 2024/12/27 00:00 UTC |
alt/p10 (3 more) | b6674565b63b | yes | Alt p10 amd64 (20241227_01:17) | x86_64 | CONTAINER | 231.58MB | 2024/12/27 00:00 UTC |
alt/p10/arm64 (1 more) | 864957bdb260 | yes | Alt p10 arm64 (20241227_01:17) | aarch64 | CONTAINER | 182.66MB | 2024/12/27 00:00 UTC |
alt/p10/cloud (1 more) | 262a6ff9259c | yes | Alt p10 amd64 (20241227_01:17) | x86_64 | CONTAINER | 226.51MB | 2024/12/27 00:00 UTC |
alt/p10/cloud/arm64 | 7643261d1273 | yes | Alt p10 arm64 (20241227_01:17) | aarch64 | CONTAINER | 176.94MB | 2024/12/27 00:00 UTC |
alt/p11 (3 more) | 4faf887493d7 | yes | Alt p11 amd64 (20241227_01:17) | x86_64 | CONTAINER | 183.38MB | 2024/12/27 00:00 UTC |
alt/p11/arm64 (1 more) | df49ca8bf30a | yes | Alt p11 arm64 (20241227_01:17) | aarch64 | CONTAINER | 182.81MB | 2024/12/27 00:00 UTC |
Образы доступны для следующих архитектур:
- x86_64
- aarch64
Запустить первый контейнер.
$ incus launch images:alt/p11 first
Запустить второй контейнер.
$ incus launch images:alt/Sisyphus second
Сделать третий контейнер из копии первого.
$ incus copy first third
Запустить третий контейнер.
$ incus start third
В дополнение к контейнерам, Incus позволяет запускать виртуальные машины, используя образы, имеющие тип "VIRTUAL-MACHINE", например: Запустить виртуальную машину с названием ubuntu-vm, используя образ Ubuntu 22.04.
$ incus launch images:ubuntu/22.04 ubuntu-vm --vm
Вывести список всех созданных контейнеров и виртуальных машин.
$ incus ls
Запросить дополнительную информацию о каждом экземпляре.
$ incus info first $ incus info second $ incus info third $ incus info ubuntu-vm
Зайти в контейнер.
$ incus exec first bash
Остановить первый контейнер.
$ incus stop first
И удалить его.
$ incus rm first
Принудительно удалить запущенный контейнер.
$ incus rm second --force
Вывести список образов.
$ incus image ls
Настройка экземпляров
Существует несколько ограничений и параметров конфигурации, которые вы можете установить для своих экземпляров. Все параметры экземпляров можно найти тут Запустите контейнер и ограничьте его одним виртуальным процессором и 192 МБ оперативной памяти.
$ incus launch images:alt/p11 limited --config limits.cpu=1 --config limits.memory=192MiB
Проверьте текущую конфигурацию и сравните ее с конфигурацией первого (неограниченного) контейнера:
$ incus config show limited $ incus config show first
Проверить объем свободной и используемой памяти в хостовой системе и в двух контейнерах:
$ free -m $ incus exec first -- free -m $ incus exec limited -- free -m
Общий объем памяти идентичен для родительской системы и первого контейнера, поскольку по умолчанию контейнер наследует ресурсы из своей родительской среды. В то же время, ограниченный контейнер имеет только 192 МБАЙТ.
Проверить количество процессоров, доступных в родительской системе и в двух контейнерах:
$ nproc $ incus exec first -- nproc $ incus exec limited -- nproc
Опять же, это число идентично для хостовой системы и первого контейнера, но у ограниченного контейнера процессор всего 1.
Можно менять настройки контейнеров, во время их работы:
- Настроить ограничение памяти контейнера:
$ incus config set limited limits.memory=128MiB
- Проверить, что конфигурация изменилась:
$ incus config show limited
- Проверить объем памяти, доступный контейнеру:
$ incus exec limited -- free -m
Взаимодействие с экземплярами
Запуск интерактивной оболочки bash в вашем экземпляре:
$ incus exec first -- bash
Теперь можно выполнять команды внутри контейнера. Выйти из контейнера.
$ exit
Вместо входа в экземпляр и запуска команд внутри, вы можете запускать команды непосредственно с хоста. Например, вы можете установить монитор ресурсов btop в контейнер и запустить его:
$ incus exec first -- apt-get update $ incus exec first -- apt-get install btop -y $ incus exec first -- /usr/bin/btop
Вы также можете получить доступ к файлам из своего экземпляра и взаимодействовать с ними:
- Извлечь файл из контейнера.
$ incus file pull first/etc/hosts
- Добавить запись в файл.
$ echo "1.2.3.4 my-example" >> hosts
- Поместить файл обратно в контейнер.
$ incus file push hosts first/etc/hosts
- Пример просмотра файлов журналов внутри контейнера.
$ incus file pull first/var/log/syslog - | less
Управление снапшотами
Incus позволяет делать снапшоты экземпляров, что позволяет сохранить текущее состояние экземпляра.
- Создать снапшот с названием "clean"
$ incus snapshot create first clean
- Убедиться, что снапшот был сделан.
$ incus ls first
$ incus info first
- Ломаем контейнер.
$ incus exec first -- rm /bin/bash
- Убедимся, что контейнер сломан (Shell не запустится, так как bash был удален).
$ incus exec first -- bash
- Восстановить состояние контейнера на момент снапшота.
$ incus snapshot restore first clean
- Убедиться, что с контейнером все в порядке.
$ incus exec first -- bash
$ exit
- Удалить снапшот.
$ incus snapshot delete first clean