Найти в Дзене
День-дребедень

Podman machine: разделяй и властвуй!

Добрый день коллеги. Хочу поделиться приемом, который позволил мне сделать работу с podman более структурированной. И так ... Миграция с docker на podman проходила не без приключений, несколько раз приходилось пересоздавать виртуальную машину, тестируя те или иные настройки podman. Каждая такая итерация приводила к полной потере ранее уже загруженных образов и созданных на их основе контейнеров. Как я понимаю, в основе работы podman лежит виртуальная машина, в контексте которой и происходит загрузка образов, создание и запуск контейнеров. Ах, как бы хотелось иметь возможность разделять образа и контейнеры на те, что можно потерять без особого ущерба для процесса разработки и на те, что хранятся на моей локальной рабочей станции в полной безопасности! Решение пришло само сабой. А почему бы не создать несколько виртуальных машин podman, например две?! На одной мы будем хранить образы и контейнеры необходимые нам в повседневной работе, а на другой, образы и контейнеры, которые не жалко и
Оглавление

Добрый день коллеги. Хочу поделиться приемом, который позволил мне сделать работу с podman более структурированной. И так ...

Проблема

Миграция с docker на podman проходила не без приключений, несколько раз приходилось пересоздавать виртуальную машину, тестируя те или иные настройки podman. Каждая такая итерация приводила к полной потере ранее уже загруженных образов и созданных на их основе контейнеров.

Как я понимаю, в основе работы podman лежит виртуальная машина, в контексте которой и происходит загрузка образов, создание и запуск контейнеров.

Ах, как бы хотелось иметь возможность разделять образа и контейнеры на те, что можно потерять без особого ущерба для процесса разработки и на те, что хранятся на моей локальной рабочей станции в полной безопасности!

Решение

Решение пришло само сабой. А почему бы не создать несколько виртуальных машин podman, например две?! На одной мы будем хранить образы и контейнеры необходимые нам в повседневной работе, а на другой, образы и контейнеры, которые не жалко и потерять.

Стоит отметить, создавая несколько вирутальных машин, одну из них необходимо выбрать как машина по умолчанию. В моем случае, такой стала машина, хранящая образы тестовых контейнеров интеграционных тестов.

Создать новую виртуальную машину можно как из командной строки:

podman machine init <название машины>

Так и через пользовательский интерфейс, нажав кнопку "Create New"

Работа с неосновной виртуальной машиной практически ничем не отличается от работы с основной, ну разве что необходимо явно указывать название виртуальной машины. Для этого используется ключ -c . Вот как выглядит загрузка образа в хранилище "тестовой" виртуальной машины.

podman -c test pull quay.io/quay/busybox

podman -c test images

REPOSITORY TAG IMAGE ID CREATED SIZE
quay.io/quay/busybox latest e3121c769e39 3 years ago 1.45 MB

Что же дальше ?

Ну а дальше полная свобода, ограниченная только вашим терпением, настойчивостью и полетом фантазии :-) Комбинируйте машины и контейнеры как вам угодно и пусть ваш процесс разработки будет продуктивным и безопаным.

Во всей этой красоте конечно же присутствует и своя ложка дегтя :-( К сожалению podman не позволяет одновременную работу нескольких вирутальных машин. Жаль конечно, а то можно было бы развернуться по-настоящему :-)