practicum

Yandex Container Registry

На прошлом уроке мы говорили о том, что Docker-образы хранятся в хранилищах. Если вы работаете с Yandex.Cloud, лучше всего использовать сервис Yandex Container Registry.

Преимущества Yandex Container Registry

  • Бесплатный внутренний трафик. Для создания контейнеров придётся скачивать образы, которые могут весить несколько гигабайтов. Если вы берёте образы из Docker Hub или другого внешнего реестра, трафик тарифицируется. А если из Yandex Container Registry — такой трафик считается внутренним и не оплачивается.
  • Приватный реестр. В Docker Hub это платная возможность. В Yandex Container Registry ваш реестр по умолчанию приватный. Чтобы сделать его публичным, предоставьте права системной группе allUsers.
  • Политика автоматического удаления. При CI/CD после каждого изменения исходного кода создаётся свой образ. В итоге образов становится слишком много, приходится вручную управлять ими и удалять лишние. В Yandex Container Registry можно настроить автоматическое удаление. Это упростит управление образами в рамках CI/CD и сэкономит дисковые ресурсы и деньги, ведь стоимость хранения образов зависит от их объёма.
  • Удобство. С Yandex Container Registry вы будете работать в привычном интерфейсе веб-консоли и с командами утилиты yc.

Реестр, репозиторий и теги

Реестр в Yandex Container Registry — это хранилище Docker-образов, а репозиторий — набор образов с одинаковыми именами (т. е. версий образа).Чтобы различать образы в репозитории и отбирать их по правилам, добавляйте к имени образа уникальный в рамках репозитория тег. Если тег не задан — последней версии образа автоматически присваивается тег latest.При обращении к образу используется префикс cr.yandex, что означает Yandex Container Registry. Так выглядит запись для обращения к образу:

Скопировать кодcr.yandex/<реестр>/<имя образа>:<тег>. 

Пример полного имени: cr.yandex/my-registry/my-app:latest.Регулярные выражения позволяют выбирать образы по правилам. Например, если тестовые образы приложения my-app создавались с тегами testVersion1, testVersion2, testVersion3 и т. д., то вы отберёте все тестовые образы вот так:

Скопировать кодcr.yandex/my-registry/my-app:test.* 

Автоматическое удаление

Политики автоматического удаления настраиваются для каждого репозитория отдельно. Политика — это правила, по которым Docker-образы будут удаляться. Например, можно удалять все образы с тегами test.* и все образы с тегами prod.*, созданные более месяца назад. При этом вы можете на всякий случай сохранить несколько образов, подходящих под условия.Политики удаления описываются в JSON-файле в виде списка опций и их значений. Обычно используются опции:

  • tag_regexp — тег Docker-образа для фильтрации.
  • untagged — флаг для применения правила к Docker-образам без тегов.
  • expire_period — время, кратное 24 часам, через которое Docker-образ попадает под политику удаления.
  • retained_top — количество Docker-образов, которые не будут удалены, даже если подходят по правилу.

Вот пример файла rules.json:

Скопировать код[
    {
     "description": "Delete prod Docker images older than 30 days but retain 20 last ones",
     "tag_regexp": "prod",
     "expire_period": "30d",
     "retained_top": 20
    },
    {
     "description": "delete all test Docker images except 10 last ones",
     "tag_regexp": "test.*",
     "retained_top": 10
    },
    {
     "description": "delete all untagged Docker images older than 48 hours",
     "untagged": true,
     "expire_period": "48h"
    }
] 

Удаление образа — это ответственное действие. Поэтому после настройки правил проверьте, как они будут работать в автоматическом режиме. Вам поможет тестовый запуск политики: dry-run.Для репозитория можно настроить несколько политик, но активной будет только одна. Включайте и отключайте политики в зависимости от своих задач.

Container Optimized Image

Yandex.Cloud позволяет создать из специального образа Container Optimized Image виртуальную машину, чтобы запустить на ней Docker-контейнер. При использовании Container Optimized Image не нужно устанавливать на машину Docker и скачивать образ с помощью команды docker pull. Мы опробуем эту возможность на следующей практической работе.

Previous Story

Docker

Next Story

Практическая работа. Создание докер-образа и загрузка его в Container Registry

Latest from Blog

Zabbix – Docker – Raspberry Pi

Для начала установим Portainer – веб-интерфейс для управления docker-контейнерами. Бесплатно, удобно, подойдет новичкам в docker. Установка

Сетевая папка/диск в Linux

x.x.x.x адрес шары /mnt/shara точка монтирования user пользователь с доступом к шаре 1234 пароль пользователя Для

Памятка SSH

В статье описаны продвинутые функций OpenSSH, которые позволяют сильно упростить жизнь системным администраторам и программистам, которые

0 £0.00