Конфигурационные файлы Podman
Конфигурационные файлы Podman описывают, как будет создаваться и работать контейнер, где будут храниться образы и т. д.
Файлы содержат настройки по умолчанию, но могут быть изменены или переопределены другими конфигами.
Виды конфигураций:
- стандартная, поставляемая вместе с дистрибутивом (
/usr/share/containers); - глобальная конфигурация для всей системы (
/etc/containers); - пользовательская конфигурация — используется, когда пользователь хочет поменять конфигурацию Podman для своих целей (
$HOME/.config/containers).
Приоритет конфигураций
Порядок, в котором Podman применяет конфигурацию, следующий:
1 — пользовательская,
2 — глобальная,
3 — стандартная.
Если на верхнем уровне не определены настройки, то Podman смотрит на следующие уровни, пока не найдет нужное поле или не просмотрит все файлы.
Виды конфигурационных файлов
├── auth.json # описывает аутентификацию в реестрах контейнеров
├── certs.d # содержит файлы TLS-конфигурации для реестра контейнеров
├── containers.conf # описывает поведение контейнера
├── containers.conf.d # содержит файлы конфигурации отдельных компонентов системы
├── mounts.conf # описывает автоматическое монтирование контейнеров
├── oci # хранит json-файлы, указывающие хуки, выполняющиеся в жизненном цикле контейнера
│ └── hooks.d # содержит скрипты, которые выполняются в жизненном цикле контейнера
├── policy.json # описывает политики для валидации образов
├── registries.conf # описывает настройки реестров образов
├── registries.conf.d # содержит дополняющие файлы конфигурации для registires.conf
├── registries.d # описывает конфигурации для отдельных реестров
└── storage.conf # описывает параметры хранения контейнеров
Подробне о конфигурационных файлах
auth.json
Файл, содержащий учетные данные, созданные командой podman login: ключ в виде имени хоста или полного пути до образа, токены аутентификации к реестрам.
Путь: ${XDG_RUNTIME_DIR}/containers/auth.json.
Примечание:
Как правило, переменная окружения XDG_RUNTIME_DIR является подкаталогом в /run, и при перезагрузке все данные пропадают.
Если требуется сохранить данные, необходимо назначить переменную REGISTRY_AUTH_FILE.
Если учетные данные отсутствуют в директории по умолчанию, выполните поиск по директориям, содержащим настройки rootless-пользователя: ${XDG_CONFIG_HOME}/containers/auth.json (обычно ~/.config/containers/auth.json).
certs.d
Каталог пользовательских TLS-сертификатов для конкретных реестров контейнеров.
Пути:
/etc/containers/certs.d,$HOME/.config/containers/certs.d.
containers.conf, containers.conf.d
Файлы, определяющие общую конфигурацию движка контейнеризации и флаги командной строки.
Пути:
/usr/share/containers/containers.conf— по умолчанию,/etc/containers/containers.conf— назначается администратором,/etc/containers/containers.conf.d— назначается администратором.
Для настройки, специфичной для конкретного пользователя, учитываются файлы (rootless-пользователи):
$XDG_CONFIG_HOME/containers/containers.conf,$XDG_CONFIG_HOME/containers/containers.conf.d/*.conf,$HOME/.config/containers/containers.conf, если$XDG_CONFIG_HOMEне определена,$HOME/.config/containers/containers.conf, если$XDG_CONFIG_HOMEне определена.
Если определить переменную окружения CONTAINERS_CONF, все системные и пользовательские конфигурационные файлы игнорируются и загружается только указанный конфигурационный файл.
Если задана переменная окружения CONTAINERS_CONF_OVERRIDE, конфигурационный файл будет загружен последним, даже если задана переменная окружения CONTAINERS_CONF.
mounts.conf
В файле перечислены каталоги хоста, содержимое которых автоматически копируется внутрь запускаемого контейнера. Изменения в контейнере не затрагивают хост, и наоборот.
Пути:
/usr/share/containers/mounts.conf(по умолчанию),/etc/containers/mounts.conf(назначается администратором),$HOME/.config/containers/mounts.conf(для rootless пользователей).
oci/hooks.d
Директория, в которой хранятся:
- хуки,
- json-файлы, указывающие, какие хуки на каких этапах жизненного цикла контейнера выполняются.
Пути:
/usr/share/containers/oci/hooks.d/,/etc/containers/oci/hooks.d/.
policy.json
Содержит политику проверки подписей образов контейнеров.
Пути:
/etc/containers/policy.json,$HOME/.config/containers/policy.json.
registries.conf
Общесистемный конфигурационный файл для реестров образов контейнеров. Формат файла — TOML.
Пути:
/etc/containers/registries.conf$HOME/.config/containers/registries.conf
Также можно определить переменную окружения CONTAINERS_REGISTRIES_CONF.
registries.conf.d
Системная директория для дополнительных конфигурационных файлов реестров образов контейнеров.
Пути:
/etc/containers/registries.conf.d,$HOME/.config/containers/registries.conf.d.
registries.d
Каталог для различных конфигураций реестров.
Пути:
/etc/containers/registries.d,$HOME/.config/containers/registries.d
storage.conf
Файл с параметрами общего хранилища контейнеров.
Пути:
/etc/containers/storage.conf(по умолчанию),$HOME/.config/containers/storage.conf(для rootless пользователей).
Также можно определить переменную CONTAINERS_STORAGE_CONF.
Руководства на man-страницах
Полезные переменные окружения
-
CONTAINERS_CONF— переопределение стандартного пути доcontainers.conf. -
CONTAINERS_REGISTRIES_CONF— переопределение стандартного пути доregistries.conf. -
CONTAINERS_STORAGE_CONF— переопределение стандартного пути доstorage.conf. -
REGISTRY_AUTH_FILE— переопределение стандартного пути к файлу аутентификацииauth.json. -
XDG_CONFIG_HOME— переопределение пути до конфигурационных файлов в rootless-режиме:$XDG_CONFIG_HOME/containersвместо$HOME/.config/containers/. -
XDG_DATA_HOME— переопределение директории хранения образов в rootless-режиме:$XDG_DATA_HOME/containers/storageвместо$HOME/.local/share/containers/storage. -
XDG_RUNTIME_DIR— переопределение директории хранения временных конфигурационных данных в rootless-режиме в$XDG_RUNTIME_DIR/containers.