Sobes.tech
Junior

Comment construire une image et la pousser dans le registre?

sobes.tech IA

Réponse de l'IA

La construction de l’image Docker s’effectue avec la commande docker build, qui utilise le Dockerfile comme instruction. Le Dockerfile contient les étapes pour créer l’image, telles que l’image de base, la copie de fichiers, l’installation des dépendances et la configuration de l’environnement.

Exemple de Dockerfile :

# Utiliser une image de base
FROM ubuntu:latest

# Installer les dépendances
RUN apt-get update && apt-get install -y nginx

# Copier les fichiers de configuration
COPY nginx.conf /etc/nginx/nginx.conf

# Ouvrir le port
EXPOSE 80

# Démarrer le serveur web
CMD ["nginx", "-g", "daemon off;"]

Commande de build :

# docker build -t <nom_image>:<tag> <chemin_vers_Dockerfile>
docker build -t my-nginx-image:latest .

-t my-nginx-image:latest assigne à l’image le nom my-nginx-image avec le tag latest. Le . indique le répertoire courant où se trouve le Dockerfile.

Après une construction réussie, l’image sera disponible localement. Pour la sauvegarder dans un registre (par exemple Docker Hub ou un registre privé), il faut d’abord se connecter au registre avec la commande docker login.

# docker login <adresse_du_registre>
# Pour Docker Hub, l’adresse n’est pas spécifiée
docker login

Ensuite, il faut retagger l’image pour qu’elle corresponde à l’adresse du registre.

# docker tag <nom_local>:<tag> <adresse_du_registre>/<nom_du_dépôt>:<tag>
# Pour Docker Hub, si l’utilisateur est 'myuser'
docker tag my-nginx-image:latest myuser/my-nginx-image:latest

Et enfin, pousser l’image dans le registre :

# docker push <adresse_du_registre>/<nom_du_dépôt>:<tag>
# Pour Docker Hub
docker push myuser/my-nginx-image:latest

Le processus de build et de push est souvent automatisé avec des systèmes CI/CD (Jenkins, GitLab CI, GitHub Actions, etc.).