Как продолжении minihowto о деплое в docker swarm mode, в данной статье мы рассмотрим деплой docker-registry.
Создаем файлик .env
REGISTRY_VERSION=2.6.2 REGISTRY_PORT=127.0.0.1:5000 REGISTRY_DATA_DIR=./data/registry
Создаем docker-compose
version: '3.3'
services:
registry:
image: registry:${REGISTRY_VERSION}
ports:
- ${REGISTRY_PORT}:5000
environment:
SETTINGS_FLAVOR: local
STORAGE_PATH: /var/lib/docker/registry
SEARCH_BACKEND: sqlalchemy
CACHE_REDIS_HOST: cache
CACHE_REDIS_PORT: 6379
CACHE_LRU_REDIS_HOST: cache
CACHE_LRU_REDIS_PORT: 6379
volumes:
- ${REGISTRY_DATA_DIR}:/var/lib/registry
networks:
reg-network:
aliases:
- registry.local
deploy:
#mode: replicated
replicas: 1
#endpoint mode: dnsrr
# service resource management
resources:
# Hard limit - Docker does not allow to allocate more
limits:
cpus: '0.25'
memory: 256M
# Soft limit - Docker makes best effort to return to it
reservations:
cpus: '0.25'
memory: 512M
# service restart policy
restart_policy:
condition: on-failure
delay: 5s
max_attempts: 3
window: 120s
# service update configuration
update_config:
parallelism: 1
delay: 10s
failure_action: continue
monitor: 60s
max_failure_ratio: 0.3
# placement constraint - in this case on 'worker' nodes only
placement:
constraints: [node.role == manager]
##NETWORKS
networks:
reg-network:
driver: overlay
Запускаем
export $(cat .env) && docker stack deploy --compose-file=docker-compose.yml reg
Пробуем запушить образ, для этого скачаем тандартный образ nginx,повесим на него тэг нашего регитсри и запушим
docker pull nginx docker tag nginx 127.0.0.1:5000/nginx docker push 127.0.0.1:5000/nginx
Итак,что мы получим в итоге:
– docker regisry с ограничениями по ресурсам
– доступ только по localhost – останется только прикрутить nginx с openldap авторизацией, об этом расскажу в следующей статье.
