Прощай Helper scripts. Запускаем OCI в Proxmox 9.1
В Proxmox 9.1 завезли OCI. В предыдущем посте про обновление с 8ки на 9ку я это уже упоминал, поэтому повторяться не буду.
Как я обновлял Proxmox и остался жив
Сегодня посмотрим как OCI работает на практике.
OCI это не какая-то отдельная сущность, это тот же самый LXC контейнер в котором будет запущен нужный тебе контейнер.
ЧИТАТЬ ПЕРВЫМ В ТЕЛЕГРАМ ЧИТАТЬ ПЕРВЫМ В MAX
Тут важное замечание — тебе не нужно устанавливать руками docker демона в LXC и только затем запускать контейнер. OCI все сделает само. Это не какой-то встроенный docker или k8s. Всё так или иначе работает под управлением LXC.
К примеру возьмем заезженный образ nginx, который валяется в dockerhub:
nginx:latest
Заходим в Proxmox и идем в раздел с шаблонами, там будет кнопка Pull from OCI Registry.

Жмем её и видим диалоговое окно:

В первом поле Reference указываем адрес, с которого будем вытаскивать готовый docker образ, в нашем случае это будет nginx.
В поле Tag указываем с каким тегом будем вытягивать образ. У меня это будет latest. Но ты в праве вытащить любой нужный.
Если нажать Query Tags, то автоматически подгрузятся все доступные теги:

Кстати ты можешь брать образы не только из dockehub, а и своих Registry или каких-то другим. Соответственно в поле Reference указываешь нужный путь.
Ну и всё. Жмем кнопку и наблюдаем как скачивается OCI образ:

В списке с шаблонами появляется файл nginx_latest.tar

На этом пляски с бубном заканчиваются. Дальше просто создаем LXC контейнер и указываем в качестве шаблона этот самый OCI образ.

Вот и всё, LXC успешно запущен и в нем крутится nginx:latest

Переходим во вкладку Network и смотрим айпишник:

Переходим, проверяем:

Отлично. Всё запустилось и функционирует.
НО, если перейти в Proxmox во вкладку Console, то нет привычного шелла. Как быть и как управлять этим дерьмом?

Чтобы провалиться в такой контейнер, тебе нужно это сделать в самом шелле ноды.
Вводим команду:
pct enter <ID>

И проваливаемся в контейнер. Отлично! Но такое справедливо лишь для обрезанных образов, если образ содержит полноценную ОС, то Console будет работать, как и раньше.
Как управлять ENV переменными
У каждого такого контейнера есть переменные, которыми можно управлять. В Proxmox переходим в контейнер, открываем вкладку Options и видим Environment

Это и есть те самые переменные, к которым ты привык.

Можешь добавлять новые, можешь управлять существующими. То есть гибко настраивать этот самый контейнер.
У каждого образа (контейнера) будет свой набор таких переменных.
Чтобы в контейнер прокинуть хранилище или внешние устройства, делается по классике, через Mount Point:

На этом всё. Для прода возможно такое тебе и не подойдет, хотя я сейчас успешно перенес телеграм ботов на это решение. В проде все же рулит кубер и подобное, но если у тебя какие-то небольшие проекты, которые не требуют особого внимания, вариант с OCI вполне рабочий.
По крайней мере теперь есть вариант слезть с Helper Scripts и использовать уже нативные решения, а не поделки энтузиастов.
В общем пользуйся, пригодится!