Прощай Helper scripts. Запускаем OCI в Proxmox 9.1

Опубликовано 29 нояб. 2025 г.

В 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 и использовать уже нативные решения, а не поделки энтузиастов.

В общем пользуйся, пригодится!

Комментарии