Запускаем docker-registry в swarm mode

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

Добавить комментарий

Войти с помощью: 

Ваш e-mail не будет опубликован. Обязательные поля помечены *

 

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.