Leçon 7 / 8
Leçon 07 · Partie 2 — Aller plus loin

Registres et Docker Hub

C'est quoi un registre Docker ?

Un registre est un dépôt d'images Docker — comme GitHub est un dépôt de code. Tu y pousses tes images pour les partager, les déployer sur des serveurs, ou les utiliser dans ta CI/CD.

🐳

Docker Hub

Le registre officiel. Gratuit pour les images publiques. Limite pour les privées. hub.docker.com

officiel · public
🐙

GHCR

GitHub Container Registry. Intégré à GitHub. Gratuit pour les repos publics. ghcr.io/user/image

github · intégré CI
🦊

GitLab Registry

Intégré à chaque projet GitLab. Idéal pour les pipelines CI/CD GitLab.

gitlab · CI/CD

Publier sur Docker Hub

Terminal
# Se connecter à Docker Hub
docker login
# Saisir son username et password (ou access token)

# Builder l'image avec le bon nom (username/nom-image:tag)
docker build -t monusername/mon-app:1.0 .

# Tagger une image existante
docker tag mon-app:latest monusername/mon-app:1.0
docker tag mon-app:latest monusername/mon-app:latest

# Pousser vers Docker Hub
docker push monusername/mon-app:1.0
docker push monusername/mon-app:latest

# Tirer depuis Docker Hub (sur un autre serveur)
docker pull monusername/mon-app:1.0
⚠️

Utilise un access token plutôt que ton mot de passe Docker Hub. Génère-le dans Account Settings → Security. En cas de fuite, tu révokes juste le token sans changer ton mot de passe principal.

Conventions de tagging

Le tag d'une image identifie sa version. Des conventions sont largement adoptées :

  • latest — la dernière version stable (attention : peut casser sans warning)
  • 1.2.3 — semantic versioning (recommandé en prod)
  • 1.2 — version majeure.mineure (pointe toujours sur le dernier patch)
  • 1 — version majeure uniquement
  • sha-abc1234 — hash du commit Git (100% reproductible)
  • alpine, slim, debian — variante de l'image de base

GitHub Container Registry (GHCR)

Terminal — GHCR
# Se connecter à GHCR avec un Personal Access Token (scope: write:packages)
echo $GITHUB_TOKEN | docker login ghcr.io -u monusername --password-stdin

# Builder et tagger pour GHCR
docker build -t ghcr.io/monusername/mon-app:latest .

# Pousser
docker push ghcr.io/monusername/mon-app:latest
💡

GHCR est souvent préféré à Docker Hub dans les projets open source GitHub. Il s'intègre nativement avec GitHub Actions : ton workflow CI peut builder et pousser automatiquement l'image à chaque commit sur main.

// À retenir
  • Un registre Docker stocke et distribue des images. Docker Hub est le plus connu.
  • docker logindocker tagdocker push pour publier une image.
  • Le format du tag : username/nom-image:version pour Docker Hub, ghcr.io/user/image:tag pour GHCR.
  • Utilise le semantic versioning (1.2.3) en prod. Évite latest pour les déploiements critiques.
  • Un access token vaut mieux qu'un mot de passe pour s'authentifier.