Как отправлять и получать образы Docker с помощью реестра контейнеров DigitalOcean — CloudSavvy IT

Логотип DigitalOcean

Реестр контейнеров DigitalOcean предоставляет вам личное пространство в облаке для хранения и распространения образов Docker. Сервис не только предлагает репозиторий изображений, но и интегрируется с другими сервисами DigitalOcean. Вы можете развернуть сохраненные образы на платформе приложений и использовать их с управляемыми кластерами Kubernetes.

Преимущества и особенности

Container Registry — это конкурент Docker Hub, который позволяет хранить образы Docker в вашей учетной записи DigitalOcean. Это идеально, когда вы будете получать доступ к этим изображениям с другими функциями DigitalOcean. Вам не нужно настраивать отдельную платную учетную запись Docker Hub для личных образов вашего приложения.

Данные, хранящиеся в реестре контейнеров, автоматически распределяются по нескольким регионам центров обработки данных DigitalOcean. Это ускоряет извлечение образов, когда вы запускаете контейнеры и загружаете их на свой компьютер. В отличие от других функций DigitalOcean, вы не можете вручную выбрать центр обработки данных реестра контейнеров.

Реализация реестра DigitalOcean совместима с OCI, поэтому вы можете взаимодействовать с ним, используя знакомые инструменты экосистемы. Такие команды, как docker push и docker pull, будут «просто работать», как только вы добавите учетные данные реестра в CLI. Точно так же у оркестраторов, таких как Kubernetes, не возникнет проблем со ссылками на образы в вашем реестре.

Создание реестра

Реестр контейнеров доступен бесплатно, но бесплатный план имеет некоторые серьезные ограничения. Вы получаете один репозиторий образов (имя образа верхнего уровня), 500 МБ для хранения и 500 МБ ограничения на передачу исходящих данных — достаточно для оценки сервиса, но, вероятно, не подходит для долгосрочного использования. Базовый план за 5 долларов в месяц дает вам пять репозиториев и 5 ГБ, а профессиональная версия за 20 долларов включает неограниченное количество репозиториев и хранилище на 100 ГБ. Плата за превышение объема хранилища составляет 0,02 доллара США за ГБ.

Создайте реестр, войдя в панель управления DigitalOcean и щелкнув ссылку «Реестр контейнеров» на левой боковой панели. Дайте вашему новому реестру имя и выберите план хранения. Имя должно быть глобально уникальным в каждом реестре DigitalOcean, поэтому ваш первый выбор может быть недоступен. Он должен содержать до 63 символов, включая буквы, цифры и дефисы.

Создание нового реестра может занять несколько секунд. После завершения процесса вы попадете на экран панели инструментов вашего реестра.

Подключение интерфейса командной строки Docker

Ваш следующий шаг — подключить интерфейс командной строки Docker к реестру. Вам необходимо предоставить Docker свои учетные данные реестра, чтобы он мог отправлять и извлекать образы, используя вашу учетную запись. Есть три различных способа достижения этого.

Использование Доктл

Официальная утилита командной строки DigitalOcean, Doctl, включает в себя удобный сценарий, который настраивает ваш клиент Docker для работы с вашим реестром контейнеров.

Для использования этого метода вам необходимо установить Doctl и пройти аутентификацию в своей учетной записи DigitalOcean. Выполните следующую команду, чтобы настроить интеграцию:

вход в реестр doctl

Использование токена API DigitalOcean

Токены API DigitalOcean можно использовать для аутентификации в реестрах контейнеров. Создайте токен, щелкнув ссылку «API» в нижней части левой боковой панели в своей учетной записи DigitalOcean. Нажмите «Создать новый токен», дайте ему имя и нажмите «Создать токен» в следующем всплывающем окне.

Значение токена будет отображаться. Запишите это, так как вы не сможете получить его позже. Теперь вернитесь в свой CLI и используйте команду входа в docker для подключения к вашему реестру:

регистрация в докереRegistry.digitalocean.com

Вам будет предложено ввести имя пользователя и пароль. Используйте значение сгенерированного токена API для обе поля. Теперь Docker сможет взаимодействовать с реестрами DigitalOcean, принадлежащими вашей учетной записи.

Загрузка файла учетных данных Docker

Если вы не хотите генерировать ключ API или использовать Doctl, перейдите на страницу панели инструментов Container Registry и нажмите синюю кнопку «Действия» в правом верхнем углу. Выберите «Загрузить учетные данные Docker» в меню.

Этот файл представляет собой совместимый с Docker файл config.json, который включает учетные данные для вашего реестра. Вы можете либо объединить его с вашим основным файлом ~/.docker/config.json, либо использовать флаг —config с командами docker:

docker —config ~/downloaded-config.json pull register.digitalocean.com/<имя-вашего-реестра>/example-image:latest

Использование Docker для отправки и получения изображений

После правильной настройки Docker вы теперь можете использовать интерфейс командной строки для отправки и извлечения образов из реестра контейнеров. Изображения должны быть помечены в следующем формате:

Registration.digitalocean.com/<имя-вашего-реестра>/example-image:latest

Вот простой пример отправки копии существующего образа в ваш реестр:

docker pull httpd:latest docker tag httpd:latest Registration.digitalocean.com/<имя-вашего-реестра>/httpd:latest docker push Registration.digitalocean.com/<имя-вашего-регистра>/httpd:latest

Перейдите на панель управления вашего реестра в панели управления DigitalOcean. Ваше новое загруженное изображение должно появиться в вашем реестре. Вы можете щелкнуть изображение, чтобы увидеть доступные теги. Удалите определенный тег или все теги, доступные для изображения, щелкнув значок с тремя точками справа и выбрав в меню.

Вывоз мусора

Удаление образов из реестра может оставить избыточные слои, которые больше не используются никакими оставшимися манифестами. Эти слои по-прежнему будут учитываться при расчете стоимости хранения.

DigitalOcean предоставляет средство сборки мусора для удаления потерянных слоев и манифестов. Вы увидите плитку на экране панели инструментов вашего реестра, когда сборка мусора может освободить место для хранения. Нажмите «Очистить мусор», чтобы начать процесс.

Вы увидите всплывающее диалоговое окно, позволяющее выбрать, следует ли удалять непомеченные манифесты в рамках очистки. Это допустимые образы, которым не назначен тег, поэтому на них можно ссылаться только по их полному идентификатору, например, register.digitalocean.com/<ваше-имя-реестра>/example-image:a1bc23. Удаление этих манифестов обычно желательно, если только вы не сохраняете их намеренно.

Сборка мусора переводит ваш реестр в состояние только для чтения, пока все неиспользуемые слои не будут удалены. Новые отправки будут отклонены на время очистки. Сбор данных не начнется, пока не будут завершены существующие операции записи, поэтому после запуска процесса может возникнуть небольшая задержка. Ход выполнения отображается на странице панели управления вашего реестра.

DigitalOcean не предлагает автоматическую сборку мусора. Однако можно запустить процесс с помощью Doctl и API DigitalOcean, чтобы вы могли написать свой собственный скрипт и запланировать его с помощью cron.

Заключение

Реестр контейнеров DigitalOcean предоставляет удобный способ хранения образов Docker. Вы проходите аутентификацию в реестре, используя существующий токен DigitalOcean API. Вы должны помнить, что токены API предоставляют полный доступ к вашей учетной записи — они не ограничиваются доступом к реестру.

Следует ли вам использовать Container Registry вместо Docker Hub, зависит от того, что вы будете делать с образами. Если вы будете развертывать их в DigitalOcean, имеет смысл размещать ваши образы вместе с вашей инфраструктурой, чтобы максимизировать производительность. Однако у Docker Hub есть преимущества и в других областях, таких как автоматическое восстановление образов и сканирование уязвимостей, которые могут быстро выявить проблемы безопасности. В сервисе DigitalOcean нет ни того, ни другого, вместо этого он сосредоточен на чистом и простом хранении изображений.

Похожие записи

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

Ваш адрес email не будет опубликован.