Enregistrer un conteneur Docker sur Amazon Elastic Container Registry (ECR)

Docker est une plateforme open-source qui permet aux développeurs de créer, déployer et gérer des applications dans des conteneurs légers et portables.
Un conteneur inclut tout ce dont une application a besoin pour fonctionner, comme les bibliothèques, le code source et les configurations, ce qui garantit que l’application peut être exécutée de manière identique sur n’importe quel environnement, que ce soit localement, dans un centre de données ou dans le cloud.

Les avantages principaux de Docker incluent :

  • Portabilité : Une fois l'application empaquetée dans un conteneur, elle peut être déployée facilement sur n'importe quel système supportant Docker.
  • Isolation : Chaque application est exécutée dans un environnement isolé, ce qui évite les conflits entre dépendances ou bibliothèques.
  • Efficacité : Docker permet une utilisation efficace des ressources en exécutant plusieurs conteneurs sur un même hôte.

Pourquoi Amazon ECR ?
Amazon Elastic Container Registry (ECR) est un service entièrement géré qui permet de stocker, partager et déployer vos images Docker en toute sécurité.
Il est conçu pour être facile à utiliser avec d'autres services AWS, comme Amazon ECS (Elastic Container Service) ou Amazon EKS (Elastic Kubernetes Service), facilitant ainsi la gestion de vos conteneurs en production. .

Les raisons pour lesquelles j'ai choisi ECR pour stocker mes images Docker incluent :

  • Intégration avec AWS : ECR s’intègre directement avec d’autres services AWS, ce qui facilite l’automatisation et le déploiement des conteneurs.
  • Sécurité : ECR utilise IAM pour gérer les accès aux dépôts, assurant un contrôle granulaire sur qui peut accéder, télécharger ou supprimer des images.
  • Scalabilité : ECR peut stocker et gérer un grand nombre d’images Docker et est conçu pour s'adapter aux besoins de votre infrastructure à mesure que votre application évolue.
  • Performance optimisée : Amazon ECR est optimisé pour des déploiements rapides et efficaces sur les services cloud d'AWS, ce qui garantit que vos images sont rapidement disponibles pour être déployées.

Pour stockez vos images Docker sur AWS via AWS CLI, vous devrez configurer un utilisateur IAM avec des permissions spécifiques liées à ECR (Elastic Container Registry).

Créer un utilisateur disposant des aurorisations adéquates

1. Se connecter à la console AWS.

2. Créer un nouvel utilisateur IAM sur AWS avec l'option 'attacher directement les politiques'.


Autorisations IAM pour AWS Fargate

3. Choisir les politiques.


Les politiques suivantes doivent être attachées à l'utilisateur IAM pour une utilisation future sur AWS Fargate :

  • AmazonEC2ContainerRegistryFullAccess
  • AmazonECS_FullAccess
  • AmazonVPCFullAccess
  • IAMFullAccess
politiques IAM

4. Créer une clé d'accès.


Selectionner les informations d'identification de sécurité

informations d'identification de sécurité

Créer la clé

Création clef

5.Récupérer les informations.


Choisissez 'Interface de ligne de commande (CLI)'

Interface de ligne de commande

Récuperer les clés'


clef

Une fois les clés récupérées, il faut installer AWS CLI.

Verification de l'existence et version de AWS CLI sur Ubuntu

Pour vérifier si AWS CLI est installé sur votre système Ubuntu, vous pouvez utiliser la commande suivante dans votre terminal :

aws --version

Si AWS CLI est installé :
- Vous verrez quelque chose comme

`aws-cli/2.x.x` suivi de détails sur Python et l'environnement.

Si AWS CLI n'est pas installé :
- Vous recevrez un message indiquant

commande `aws` n'est pas trouvée

Installation de AWS CLI sur Ubuntu

Si AWS CLI n'est pas installé, suivez ces étapes pour l'installer :


1. Mettez à jour votre système :


sudo apt update

2. Installer les dépendances nécessaires :


AWS CLI v2 nécessite quelques dépendances, notamment `unzip` et `curl` :
sudo apt install unzip curl

3. Télécharger AWS CLI v2 :

Utilisez `curl` pour télécharger la dernière version d'AWS CLI :
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"

4. Décompresser le fichier :

unzip awscliv2.zip

5. Installer AWS CLI :

sudo ./aws/install

6. Vérifier l'installation :

Une fois l'installation terminée, vérifiez-la en utilisant :
aws --version

Configuration d'AWS CLI

Après l'installation, vous devez configurer AWS CLI avec vos informations d'identification AWS :
aws configure

Cela vous demandera les éléments suivants :

1. AWS Access Key ID: Entrez votre clé d'accès.
2. AWS Secret Access Key: Entrez votre clé secrète.
3. Default region name: Entrez la région par défaut (par exemple `us-west-2`).
4. Default output format: Vous pouvez choisir entre `json`, `text`, ou `table`. Le format par défaut est `json`.

Cela configurera votre AWS CLI pour fonctionner avec votre compte AWS. Vous pouvez maintenant utiliser les commandes AWS depuis votre terminal Ubuntu.

retrouver la configuration utilisés par AWS CLI.

1. Vérifiez les fichiers de configuration AWS CLI :

AWS CLI stocke les configurations dans deux fichiers principaux situés dans le répertoire ~/.aws/ :
- ~/.aws/credentials : Contient les informations d'identification (AWS Access Key ID et AWS Secret Access Key ).
- ~/.aws/config : Contient la configuration générale comme la région par défaut et le format de sortie.
Vous pouvez visualiser le contenu de ces fichiers avec les commandes suivantes :

cat ~/.aws/credentials
cat ~/.aws/config

Exemple de sortie :

~/.aws/credentials :
[default]
aws_access_key_id = AKIAIOSFODNN7EXAMPLE
aws_secret_access_key = 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
~/.aws/config :
[default]
region = us-west-2
output = json

2. **Afficher les configurations actuelles avec la commande `aws configure list` :

AWS CLI fournit une commande pour lister la configuration actuelle :

aws configure list

Cette commande affiche les valeurs actuelles pour l'utilisateur,
y compris `Access Key`, `Secret Key`, `Region`, et `Output`.
Avec ces étapes, vous pouvez récupérer et gérer vos configurations AWS CLI existantes
sur votre système Ubuntu.



Une fois AWS CLI configuré, nous pouvons déployer notre conteneur sur ECR.

Enregistrement de votre image Docker dans le registre de conteneurs d'Amazon (ECR)

1. Créer un référentiel dans Amazon Elastic Container Registry:


creation d'un referentiel

2. Nommer le référentiel:


nommer le referentiel

3. Obtenir les informations du push:


Valider et appuyer sur le bouton 'Afficher les commandes push'.

informations push

Récuperer les commandes bash.

informations push

4. Executer les commandes sur le terminal du poste contenant le Docker à pousser:


Identifier l'image à pousser

sudo docker build --no-cache -t rakuten_projet .
sudo docker images

Pousser l'image

aws ecr get-login-password --region eu-north-1 | sudo docker login --username AWS --password-stdin xxxxxxxxxx.dkr.ecr.eu-north-1.amazonaws.com
sudo docker tag rakuten_projet:latest xxxxxxxxxx.dkr.ecr.eu-north-1.amazonaws.com/rakuten_projet:latest
sudo docker push xxxxxxxxxx.dkr.ecr.eu-north-1.amazonaws.com/rakuten_projet:latest

4. Constater le réussite du push :


Valider et appuyer sur le bouton 'Afficher les commandes push'.

affichage des images

L'image de votre conteneur est enregistrée sur ECR !.


------------------------------------------