Назад | Перейти на главную страницу

Автоматический вход в Amazon ECR с помощью Docker Swarm

У нас есть образы Docker, размещенные на Amazon ECR, и наша цель - запустить их на инстансах EC2 с помощью Docker Swarm. Службы настроены в глобальном режиме, поэтому они автоматически реплицируются на новые узлы. Группа с автоматическим масштабированием может автоматически добавлять новые экземпляры EC2 в рой.

Проблема в том, что Docker не может вытащить образы из реестра ECR. Есть ли способ заставить Docker Swarm работать aws ecr get-login перед извлечением изображений или есть способ навсегда войти в ECR, продолжая использовать роль IAM для аутентификации в ECR?

Бег aws ecr get-login при запуске новых узлов тоже не работает.

К вашему сведению: я не ищу --with-registry-auth, это отлично работает, когда я вручную обновляю сервис, но не когда AWS автоматически добавляет новые узлы.

У меня была такая же проблема при использовании Docker Swarm и включенном автоматическом масштабировании AWS.

Решение: Вам необходимо периодически запускать следующую команду для всех служб.

docker service update -d -q --with-registry-auth service-name

Запуск aws ecr-get при запуске узла не сработает.

Это сообщение в блоге описывает проблему и предоставляет полное решение о том, как реализовать автоматический вход в ECR.

http://issamben.com/docker-swarm-ecr-auto-login/

Для тех, кто все еще ищет решение, следуйте этой статье. Это более стабильное решение. https://medium.com/@MahmoudGaballah/ecr-for-docker-swarm-fdea3a9b01b1