Docker-registry

Материал из sysadm
Перейти к навигации Перейти к поиску

Репозиторий в контейнере

  1. установить docker
  2. загрузить образ docker-registry
  3. запустить контейнер

Репозиторий на хосте

  1. скачать с GitHub архив, например registry_2.8.3_linux_amd64.tar.gz
  2. распаковать исполняемый файл registry
  3. скопировать на сервер
  4. создать сервис и настроить файлы конфигурации

Установка

mv registry /usr/local/bin/
chmod +x /usr/local/bin/registry

# создание необходимых каталогов
mkdir -p /etc/docker/registry
mkdir -p /var/lib/registry

# создание файла конфигурации
/etc/docker/registry/config.yml
#-------------------------------------------------------------------------------
version: 0.1
log:
  fields:
    service: registry
storage:
  cache:
    blobdescriptor: inmemory
  filesystem:
    rootdirectory: /var/lib/registry
http:
  addr: :5000
  headers:
    X-Content-Type-Options: [nosniff]
#-------------------------------------------------------------------------------

# создание файла сервиса
vi /etc/systemd/system/docker-registry.service
#-------------------------------------------------------------------------------
[Unit]
Description=Docker Registry
After=network.target

[Service]
Type=simple
ExecStart=/usr/local/bin/registry serve /etc/docker/registry/config.yml
Restart=on-failure

[Install]
WantedBy=multi-user.target
#-------------------------------------------------------------------------------

# включение из запуск сервиса
systemctl daemon-reload
systemctl enable docker-registry
systemctl start docker-registry


Настройка клиентов (Insecure Registry)

Если реестр поднят на http, то на клиентах необходимо разрешить использовать этот репозиторий без шифрования

vi /etc/docker/daemon.json
#-------------------------------------------------------------------------------
{
  "insecure-registries" : ["192.168.1.10:5000"]
}
#-------------------------------------------------------------------------------
systemctl restart docker

Загрузка образов в локальный реестр

На любом хосте с docker

# загрузка в images
docker pull quay.io/minio/minio:latest

# создание тэга
# Синтаксис: docker tag [ЧТО_ЕСТЬ] [КУДА_ХОТИМ]
docker tag quay.io/minio/minio:latest 192.168.1.10:5000/my-minio:latest

# отправка в локальный репозиторий
docker push 192.168.1.10:5000/my-minio:latest