Product SiteDocumentation Site

12.4. Zot: базовый функционал

Zot — легковесный высокопроизводительный OCI-совместимый реестр контейнеров, предназначенный для хранения, управления и распространения контейнерных образов и связанных артефактов.
Поддерживаемые артефакты:
  • OCI- и Docker-образы;
  • Helm-чарты;
  • SBOM (Software Bill of Materials);
  • подписи и политики доверия (Notary v2, Cosign);
  • метаданные образов.
Реестр может работать как в локальном, так и в распределённом режиме.
Основные возможности:
  • полная совместимость с OCI Distribution Specification;
  • поддержка клиентов: Docker, Podman, containerd, Helm и др.;
  • поддержка подписей образов (Notary v2, Cosign);
  • управление доступом (RBAC: пользователи, группы, репозитории);
  • зеркалирование удалённых реестров (pull-through cache);
  • аудит и логирование;
  • работа в распределённой среде (S3-совместимое хранилище);
  • встроенный веб-интерфейс и REST API.

12.4.1. Установка и запуск

Установка пакета:
# apt-get install zot
Основной файл конфигурации /etc/zot/config.json.
Пример:
{
    "storage":{
        "rootDirectory":"/var/lib/zot"
    },
    "http":{
        "address":"127.0.0.1",
        "port":"5000"
    },
    "log":{
        "level":"debug"
    },
    "extensions": {
        "search": {
            "enable": true,
            "cve": {
                "trivy": {
                    "dbRepository": "altlinux.space/trivy/trivy-db"
                },
                "updateInterval": "24h"
            }
        },
        "ui": {
            "enable": true
        },
        "mgmt": {
            "enable": true
        }
    }
}
Для возможности доступа с других хостов необходимо для параметра address задать значение 0.0.0.0 (слушать на всех сетевых интерфейсах).
Можно также указать публичный адрес реестра (параметр externalUrl), например:
"externalUrl": "http://registry.test.alt"

Примечание

DNS должен резолвиться и порт должен быть доступен.
Запуск и проверка сервиса:
# systemctl start zot
# systemctl status zot

Примечание

Для отладки или тестирования можно запустить Zot вручную:
# zot serve /etc/zot/config.json
После запуска реестр доступен по адресу: http://localhost:5000.

Примечание

Если Zot работает по HTTP, необходимо разрешить небезопасный реестр (insecure registry):
  • добавить в /etc/containers/registries.conf:
    [[registry]]
    location = "localhost:5000"
    insecure = true
    
  • или временно:
    $ podman push --tls-verify=false localhost:5000/alt/alt:p11