Гид по технологиям

Как использовать Amazon ECR: создание репозитория и загрузка образа

• 5 min read • DevOps • Обновлено 23 Nov 2025
Amazon ECR: создать репозиторий и загрузить образ
Amazon ECR: создать репозиторий и загрузить образ

Краткие термины

  • Registry — область в AWS, где создаются репозитории образов.
  • Repository — хранилище Docker-образов внутри реестра.
  • Image — Docker-образ, который можно качать и загружать.
  • Authorization token — токен авторизации для Docker-клиента, получаемый через AWS CLI.

Что мы сделаем

  1. Войдём в AWS Console.
  2. Создадим репозиторий в ECR.
  3. Установим и настроим AWS CLI на Linux.
  4. Аутентифицируем Docker, тегируем и загружаем образ в ECR.
  5. Удалим локальные теги/образы и проверим загрузку из ECR.

Предварительные требования

  • Учётная запись AWS.
  • Сервер Ubuntu 18.04 или EC2-инстанс с Ubuntu 18.04.
  • Docker установлен на вашей машине.
  • AWS-права (IAM) с разрешениями на работу с ECR (например, ecr:GetAuthorizationToken, ecr:BatchCheckLayerAvailability, ecr:PutImage, ecr:InitiateLayerUpload и т. п.).

Войти в AWS

Откройте страницу входа в AWS и авторизуйтесь с вашей учётной записью. После входа в консоль переключитесь в нужный регион — репозитории в ECR зависят от региона.

Страница входа в AWS Management Console

Создание репозитория ECR

  1. В списке сервисов выберите ECR (Elastic Container Registry).
  2. Выберите желаемый регион (например, eu-west-3 — Париж).
  3. Нажмите “Get Started” для первого репозитория или “Create repository” для последующих.
  4. Задайте имя репозитория.
  5. По желанию включите опции:
    • Tag Immutability — запрет перезаписи тегов одинаковыми метками.
    • Scan on Push — автоматическое сканирование образов при загрузке.

Если вы пока не хотите эти опции — оставьте их выключенными и нажмите “Create Repository”.

Выбор ECR в списке сервисов AWS

Создание первого репозитория ECR

Репозиторий создан и готов к использованию

Установка AWS CLI на Linux

На Ubuntu можно установить awscli через apt. Выполните от имени root или через sudo:

apt-get update
apt-get install -y awscli

Установка awscli в терминале

Проверьте версию:

aws --version

Примечание: для AWS CLI v2 можно использовать официальный установщик от AWS. Если у вас уже установлена версия, проверьте совместимость команд (в современных версиях рекомендуется использовать get-login-password).

Настройка учётных данных AWS

Экспортируйте/настройте ключи доступа. На машине выполните:

aws configure set aws_access_key_id YOUR_ACCESS_KEY
aws configure set aws_secret_access_key YOUR_SECRET_KEY
aws configure set default.region YOUR_DEFAULT_REGION
aws configure set default.output json

Важно: храните ключи в защищённом месте и используйте IAM-роли для EC2/CI в production-средах.

Аутентификация Docker и загрузка образа в ECR

После настройки aws CLI получите команды для пуша в консоли ECR: нажмите “View Push Commands” в вашем репозитории. Консоль предложит последовательность команд — их удобно копировать и запускать локально.

Просмотр команд для push

Шаги (общая последовательность)

  1. Аутентификация Docker к реестру ECR (современный способ для AWS CLI v2):
aws ecr get-login-password --region YOUR_REGION | docker login --username AWS --password-stdin .dkr.ecr..amazonaws.com

(если у вас старая версия aws cli, может использоваться команда aws ecr get-login — но она устарела).

  1. Получите или соберите образ локально. Например, скачать с Docker Hub:
docker pull httpd
  1. Посмотрите локальные образы:
docker images
  1. Тегирование образа для ECR: замените переменные на ваши значения.
docker tag : .dkr.ecr..amazonaws.com/:

Пример из статьи:

docker tag httpd:latest 064827688814.dkr.ecr.eu-west-3.amazonaws.com/rahul-ecr-repo:latest

Не используйте чужие адреса — создайте свой репозиторий и используйте его URI.

  1. Push образа в ECR:
docker push .dkr.ecr..amazonaws.com/:

Успешный push подтвердится списком загруженных слоёв в терминале и появлением записи в консоли ECR.

Загрузка образа в репозиторий ECR

Примечание о формате URI

Image URI имеет формат:

.dkr.ecr..amazonaws.com/:

Если вы используете приватный реестр другого аккаунта — убедитесь в наличии cross-account разрешений.

Удаление локальных образов и загрузка из ECR

Если локальный образ вам больше не нужен, удалите его:

docker rmi [:Tag]

Пример (исправленный синтаксис):

docker rmi httpd:latest

Чтобы загрузить образ из ECR, скопируйте Image URI из консоли репозитория и выполните:

docker pull 

Загрузка образа из ECR

Рекомендации по безопасности и управлению доступом

  • Используйте IAM-роли для EC2/CI вместо статических ключей там, где возможно.
  • Ограничьте права IAM только необходимыми действиями (принцип наименьших привилегий).
  • Включите Scan on Push для автоматического поиска уязвимостей (полезно в production).
  • Рассмотрите Tag Immutability для критичных релизов, чтобы предотвратить перезапись тегов.

Типичные ошибки и их устранение

  • “Access Denied” при push — проверьте IAM-политику и наличие ecr:GetAuthorizationToken.
  • Неверный регион — URI репозитория включает регион; откройте репозиторий в соответствующем регионе.
  • Проблемы с логином Docker — убедитесь, что используется aws ecr get-login-password и правильно указан registry hostname.
  • Не совпадают теги — проверьте результат docker images и используемый тег при docker push.

Критерии приёмки

  • Репозиторий создан в нужном регионе.
  • Образ успешно запушен и виден в консоли ECR.
  • При повторном pull образ корректно скачивается и запускается локально.
  • Права доступа ограничены по минимуму и соблюдены требования безопасности.

Чек-листы по ролям

  • DevOps:

    • Создать репозиторий в нужном регионе.
    • Настроить CI/CD для автоматического пуша в ECR.
    • Включить сканирование и уведомления об уязвимостях.
  • Разработчик:

    • Собрать локальный образ и проверить функциональность.
    • Тегировать образ согласно соглашению (например, semantic versioning).
    • Проверить pull на staging среде.
  • Безопасность:

    • Проверить IAM-политику и access keys.
    • Настроить мониторинг активности и аудит доступа.

Мини-методология: быстрый рабочий цикл

  1. Сборка образа локально: docker build -t myapp:1.2.3 .
  2. Логин в ECR: aws ecr get-login-password | docker login --username AWS --password-stdin $REGISTRY
  3. Тег: docker tag myapp:1.2.3 $REGISTRY/myapp:1.2.3
  4. Push: docker push $REGISTRY/myapp:1.2.3
  5. Проверка: docker pull $REGISTRY/myapp:1.2.3 и запуск контейнера.

Диаграмма принятия решения

flowchart TD
  A[Есть образ локально?] -->|Да| B{Нужна сборка CI?}
  A -->|Нет| C[Собрать образ]
  C --> B
  B -->|Да| D[Тегировать согласно CI]
  B -->|Нет| E[Тегировать вручную]
  D --> F[Аутентифицировать Docker к ECR]
  E --> F
  F --> G[Запушить образ в ECR]
  G --> H{Push успешен?}
  H -->|Да| I[Отметить релиз]
  H -->|Нет| J[Проверить IAM/region/login]

Тесты/Критерии приёмки

  • Проверка 1: команда docker push возвращает успешный статус и слои загружены.
  • Проверка 2: docker pull качает образ без ошибок.
  • Проверка 3: Запущенный контейнер из образа выполняет базовую проверку работоспособности (например, отвечает на HTTP-запрос).

1‑строчный глоссарий

  • ECR — управляемый реестр Docker-образов внутри AWS.
  • IAM — система управления доступом в AWS.

Вывод

В статье показан практический цикл: создание репозитория в ECR, настройка AWS CLI, аутентификация Docker, тегирование и загрузка образа, а также удаление и повторная загрузка. Для production-окружения рекомендуются IAM‑роли, автоматизация через CI/CD и включение сканирования образов.

Важно: используйте свои AWS‑идентификаторы и URI репозитория — не копируйте чужие адреса. Следуйте принципу наименьших привилегий и автоматизируйте процесс для воспроизводимости.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро