Страница 1 из 1

podman

Добавлено: 18 апр 2026, 18:30
admin
Это «генеральная уборка»

Код: Выделить всё

podman system prune -a
https://ftp.debian.org/debian/pool/main/d/debootstrap/

export DEBOOTSTRAP_DIR=/путь/к/папке/с/распакованным/debootstrap



чистый debian через debootstrap

это минимальная система без всего --variant=minbase

если без то будет поставлен systemd

Код: Выделить всё

./debootstrap --arch amd64 --variant=minbase stable ./debian-min http://ftp.ru.debian.org/debian/

Код: Выделить всё

debootstrap --arch amd64 --variant=minbase bionic ./bionic http://archive.ubuntu.com/ubuntu/
Импорт в Podman

Код: Выделить всё

tar -C debian-min -c . | podman import - debian-minbase:latest
# Посмотреть список файлов в образе без запуска

Код: Выделить всё

podman mount <image_id_или_name>
Создание файла для сборки образа

Код: Выделить всё

 cat Containerfile
FROM my-minbase-debian:latest

# Отключаем интерактивные вопросы при установке
ENV DEBIAN_FRONTEND=noninteractive

RUN apt-get update && apt-get install -y --no-install-recommends \
    apt-utils \
    procps \
    iproute2 \
    ca-certificates \
    && apt-get clean \
    && rm -rf /var/lib/apt/lists/*

Сборка образа в той же директории где создали Containerfile

Код: Выделить всё

podman build -t my-debian-img .

Можно из контейнера сделать образ

Код: Выделить всё

podman commit [options] CONTAINER [IMAGE_NAME[:TAG]]
Для сохранения данных приложения между перезапусками контейнеров используйте тома (volumes):

Главная фишка Podman: флаги :Z и :z
Поскольку Podman часто работает в системах с включенным SELinux (например, Fedora, RHEL, CentOS), обычное монтирование может выдать ошибку Permission denied. Чтобы Podman автоматически перенастроил метки безопасности, добавляют:
:z (строчная) — если папку будут использовать несколько контейнеров одновременно.
:Z (заглавная) — если папка монопольно используется только этим контейнером (самый безопасный вариант).

Этот контейнер создаётся без команды и

Код: Выделить всё

podman run -di -v /path/on/host:/path/in/container:Z --name conteiner_name image_name
его можно будет запустить

Код: Выделить всё

podman start nameconteiner
-e это передача переменой окружения в контейнер

Код: Выделить всё

 podman run -ti -v /export:/export:z --name=conteiner_name -e PORT=9000 --userns=keep-id --network host image_name /bin/bash
Подключение к контейнеру

Код: Выделить всё

podman exec -it my_container /bin/bash

Поверка создания службы для запуска контейнера

Код: Выделить всё

/usr/lib/systemd/system-generators/podman-system-generator --user --dryrun