Comment configurer Elastic Container Registry (ECR) pour Docker sur AWS

Amazon Elastic Container Registry (ECR) est un service de registre de conteneurs géré d’AWS. Ce service se trouve sous « Compute » dans la console AWS. Il est utilisé pour stocker, gérer et déployer des images de conteneurs Docker. ECR est intégré à Amazon Elastic Container Service (ECS).

Avec ECR, il n’y a pas de frais initiaux. Nous ne payons que pour la quantité de données que nous stockons dans nos référentiels et les données transférées sur Internet. Pour en savoir plus sur la facturation ECR, clique ici.

Avant de poursuivre, comprenons quelques termes que nous verrons plus tard dans cet article.

Registre: C’est un endroit où nous pouvons créer des référentiels d’images et y stocker des images.

Jeton d’autorisation: Le client Docker doit s’authentifier auprès des registres Amazon ECR en tant qu’utilisateur AWS avant de pouvoir pousser et tirer des images. Les informations d’authentification peuvent être récupérées à partir de la commande AWS CLI get-login fournit à transmettre à Docker.

Référentiel: Le référentiel d’images contient des images Docker. Politique du référentiel

Image: Nous pouvons pousser et tirer des images Docker vers nos référentiels. Nous pouvons utiliser ces images localement sur notre système.

Dans cet article, nous allons voir comment créer un registre ECR, un référentiel, et pousser et tirer l’image Docker vers/depuis celui-ci. J’essaierai de garder ce document aussi simple que possible pour que les novices n’aient pas besoin de beaucoup d’efforts pour comprendre.

Pré-requis

  1. Compte AWS (Créer si tu n’en as pas)
  2. Serveur Ubuntu 18.04 ou Instance Ubuntu 18.04 EC2 (Clique ici pour apprendre à créer une instance EC2 si tu n’en as pas ou si tu veux apprendre)
  3. Docker préinstallé sur ton système.

Ce que nous allons faire ?

  1. Connecte-toi à AWS.
  2. Créer un référentiel ECR.
  3. Installer AWS CLI sur le serveur Linux
  4. Authentifie le client Docker à partir du terminal, étiquette et télécharge l’image locale dans le référentiel ECR.
  5. Désétiquette et supprime l’image du système local et tire le Repo ECR.

Connecte-toi à AWS

  1. Clique sur ici pour aller sur la page de connexion AWS.

Lorsque nous cliquons sur le lien ci-dessus, nous voyons apparaître une page Web comme suit où nous devons nous connecter à l’aide de nos informations de connexion.

AWS Management Console

Créer un Repo ECR

Pour créer un Repo ECR, clique sur la flèche près de « Services » et tu verras une liste de services AWS.

Clique sur « ECR » dans la liste. Tu peux choisir la région souhaitée. Ici, je vais procéder avec Paris.

Créer une Repo ECR

Tu verras l’écran suivant.

Clique sur « Get Started » pour créer ton tout premier repo.

Crée le premier repo

Maintenant, sur l’écran suivant, donne un nom que tu veux au repo qui doit être créé.

Sur le même écran, tu peux voir deux options disponibles.

  1. Immutabilité des balises :
    Cette fonction empêche les balises d’images d’être écrasées par les poussées d’images suivantes utilisant la même balise.
  2. Scan on Push :
    Cette fonction permet d’activer le scan on push pour que chaque image soit automatiquement scannée après avoir été poussée vers un référentiel.

Pour l’instant, nous n’activerons pas ces fonctions.

Clique simplement sur « Créer un référentiel » pour continuer.

Créer un référentiel

Tu peux maintenant voir que le repo est prêt à être utilisé.

Le référentiel est prêt à être utilisé

Installer AWS CLI sur le serveur Linux

Tu auras aussi besoin de la commande « aws » sur ton système.

Pour installer « aws » sur le système Ubuntu, il suffit de taper les commandes suivantes

apt-get  update
apt-get  install awscli

installe awscli

Authentifie le client Docker depuis le terminal et Tag & Upload l’image existante dans ECR Repo.

Une fois que nous avons la commande « aws » sur notre système, nous devons authentifier le client Docker surnotre registre et pour cela, nous devons avoir un système avec Docker installé dessus.

Tu peux te référer à la page officielle de Docker pour installer Docker sur ton système.

Nous pouvons vérifier la version de Docker avec la commande « docker –version ».

Vérifie la version de Docker

Avant d’authentifier le client Docker auprès de notre registre, nous devons exporter nos aws_access_key_id et aws_secret_access_key.

Reporte-toi àla documentation officielle d’AWS pour en savoir plus à ce sujet.

Utilise les commandes suivantes pour exporter les clés requises.

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

Une fois que nous avons exporté ces valeurs, nous sommes prêts àauthentifier le client Docker auprès de notre registre.

Tout d’abord, clique sur le repo, puis clique sur « Voir les commandes Push » :

Voir les commandes Push

Nous verrons toutes les commandes requises une fois que nous aurons cliqué sur « View Push Commands » :

Voir les commandes Push

Copie la première commande et exécute-la depuis ton système pourauthentifier le client Docker auprès de notre registre.

Obtenir une connexion ECR

Maintenant, tirons une image de Docker Hub que nous pousserons vers ECR Repo ou que tu construiras toi-même à partir de ton Dockerfile. Ici, je vais tirer l’image d’apache/httpd et la pousser.

docker pull httpd

Lister les images pour voir les images disponibles sur le système local.

docker images

Copie la deuxième commande si tu veux construire ta propre image ou passe à la troisième commande et exécute-la.

docker tag <Nom_Image>:<Tag> <ECR_Repo>:<TAG>

Voici le résultat,

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

N’UTILISE PAS cette adresse car j’ai déjà supprimé le repo.

Maintenant, nous sommes prêts à pousser l’image vers ECR.

Copie la quatrième commande et exécute-la.

Cela va réussir à pousser l’image vers le Repo ECR.

Pousse l'image vers ECR Repo

Aperçu de la Repo ECR

Détache et supprime l’image du système local et la tire du Repo ECR

Nous pouvons supprimer l’image locale si tu n’en as plus besoin.

docker rmi <Nom_Image>

C’est ici,

docker  rmo httpd

De la même manière, tu peux supprimer l’Image taguée du système local.

Ensuite, tu peux essayer de tirer l’image du repo ECR.

Va dans le repo et copie l’URI de l’image :

docker  pull “IMAGE_URI”

Tire l'image du repo ECR

Conclusion

Dans cet article, nous avons appris à créer un dépôt ECR, à nous connecter auclient Docker, à marquer l’image locale, à la pousser vers le dépôt ECR et à la retirer.

Vous aimerez aussi...