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
GHCR
GitHub Container Registry. Intégré à GitHub. Gratuit pour les repos publics. ghcr.io/user/image
GitLab Registry
Intégré à chaque projet GitLab. Idéal pour les pipelines CI/CD GitLab.
Publier sur Docker Hub
# 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 uniquementsha-abc1234— hash du commit Git (100% reproductible)alpine,slim,debian— variante de l'image de base
GitHub Container Registry (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.
- Un registre Docker stocke et distribue des images. Docker Hub est le plus connu.
docker login→docker tag→docker pushpour publier une image.- Le format du tag :
username/nom-image:versionpour Docker Hub,ghcr.io/user/image:tagpour GHCR. - Utilise le semantic versioning (1.2.3) en prod. Évite
latestpour les déploiements critiques. - Un access token vaut mieux qu'un mot de passe pour s'authentifier.