Настройка зеркала Docker Registry¶
Рассмотрим, как настроить зеркало Docker Registry для ускорения доступа к образам Docker и обхода ограничений со стороны Docker Hub. Зеркало позволяет кэшировать часто используемые образы, что может значительно улучшить производительность при работе с контейнерами.
Настройка Docker Registry¶
Для начала, создадим Docker Compose файл, который настроит наше зеркало Docker Registry. Этот файл определяет сервис, который будет использовать официальный образ registry:2.8.3 и настраивает необходимые параметры окружения.
Сохраните этот файл как docker-compose.yml и запустите команду docker-compose up -d, чтобы поднять сервис.
services:
registry:
image: registry:2.8.3
container_name: registry-mirror
ports:
- "10.0.1.100:6000:5000"
restart: always
# volumes:
# - ./auth:/auth
environment:
# REGISTRY_AUTH: htpasswd
# REGISTRY_AUTH_HTPASSWD_PATH: /auth/registry.password
# REGISTRY_AUTH_HTPASSWD_REALM: Registry Realm
REGISTRY_PROXY_REMOTEURL: https://registry-1.docker.io
REGISTRY_STORAGE_CACHE_BLOBDESCRIPTOR: "inmemory"
REGISTRY_STORAGE_DELETE_ENABLED: true
REGISTRY_STORAGE_MAINTENANCE_UPLOAD_PURGING_ENABLED: "true"
REGISTRY_STORAGE_MAINTENANCE_UPLOAD_PURGING_AGE: "168h"
REGISTRY_STORAGE_MAINTENANCE_UPLOAD_PURGING_INTERVAL: "24h"
REGISTRY_STORAGE_MAINTENANCE_UPLOAD_PURGING_DRYRUN: "false"
REGISTRY_STORAGE_REDIRECT_DISABLE: "true"
REGISTRY_STORAGE: s3
REGISTRY_STORAGE_S3_ACCESSKEY: ...
REGISTRY_STORAGE_S3_SECRETKEY: ...
REGISTRY_STORAGE_S3_REGIONENDPOINT: https://s3-domain.ru
REGISTRY_STORAGE_S3_BUCKET: registry
REGISTRY_STORAGE_S3_SECURE: "true"
REGISTRY_STORAGE_S3_region: "truedev"
Параметры окружения
REGISTRY_PROXY_REMOTEURL: Указывает URL основного Docker Registry, с которого будут кэшироваться образы.
REGISTRY_STORAGE_*: Настройки хранения, в данном случае используется S3 совместимое хранилище.
Настройка клиента Docker¶
Для того чтобы Docker клиент использовал наше зеркало, необходимо отредактировать файл /etc/docker/daemon.json. Добавьте следующие строки:
/etc/docker/daemon.json
"registry-mirrors": ["http://10.0.1.100:6000", "https://mirror.gcr.io"],
"insecure-registries": ["10.0.1.100:6000"],
"log-driver": "json-file",
"log-opts": {
"max-size": "20m",
"max-file": "3",
"compress": "true",
"labels": "production_status",
"env": "os"
}
Эти настройки указывают Docker использовать наше зеркало и определяют параметры логирования.
После редактирования файла перезапустите службу Docker командой
sudo systemctl restart docker.service
Настройка Podman или Buildah¶
Если вы используете Podman или Buildah, вам нужно настроить файл /etc/containers/registries.conf. Добавьте следующие строки:
unqualified-search-registries = [
"docker.io",
"docker.elastic.co"
]
[[registry]]
prefix = "docker.io"
location = "docker.io"
[[registry.mirror]]
prefix = "docker.io"
location = "0.0.0.0:6000"
insecure = true
Настройка зеркала Docker Registry позволяет значительно ускорить процесс загрузки и работы с образами Docker, особенно в случае частого использования одних и тех же образов. Это может быть особенно полезно в корпоративных сетях или средах с ограниченной пропускной способностью интернет-канала. Следуя приведенным выше инструкциям, вы сможете легко настроить и использовать собственное зеркало Docker Registry.