Как продолжении 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 авторизацией, об этом расскажу в следующей статье.