Aller au contenu

Utilisation avec Docker✯

Cette page décrit comment pousser (push) et récupérer (pull) des images avec la commande docker. Les exemples sont transposables à podman.

Pré-requis

Convention de nommage✯

Toute image hébergée sur le registre porte un nom de la forme :

registry.isima.fr/<projet>/<dépôt>:<tag>
  • <projet> : le nom de votre projet
  • <dépôt> : le nom de votre image (ex. mon-appli)
  • <tag> : la version (ex. latest, 1.0.0, dev…)

S'authentifier✯

L'authentification n'est nécessaire que pour pousser des images, ou pour récupérer depuis un projet privé.

docker login registry.isima.fr -u <votre_login>
# Password: votre CLI secret

Pousser une image✯

1. Construire ou tagger l'image✯

À partir d'un Dockerfile :

docker build -t registry.isima.fr/mon-projet/mon-appli:1.0.0 .

Ou re-tagger une image existante pour la destiner au registre :

docker tag mon-appli:latest registry.isima.fr/mon-projet/mon-appli:1.0.0

2. Pousser l'image✯

docker push registry.isima.fr/mon-projet/mon-appli:1.0.0

L'image apparaît alors dans votre projet sur l'interface web, où elle est automatiquement scannée si l'option est activée.

Dépôt d'images dans un projet

Pousser plusieurs tags✯

Il est courant de taguer une même image avec une version explicite et le tag latest :

docker tag registry.isima.fr/mon-projet/mon-appli:1.0.0 registry.isima.fr/mon-projet/mon-appli:latest
docker push registry.isima.fr/mon-projet/mon-appli:latest

Tagger avec le hash du commit Git

Pour tracer précisément quelle version du code a produit une image :

docker tag registry.isima.fr/mon-projet/mon-appli:latest \
           registry.isima.fr/mon-projet/mon-appli:$(git rev-parse --short HEAD)
docker push registry.isima.fr/mon-projet/mon-appli:$(git rev-parse --short HEAD)

Récupérer une image✯

Depuis un projet public, aucune authentification n'est requise :

docker pull registry.isima.fr/mon-projet/mon-appli:1.0.0

Depuis un projet privé, authentifiez-vous d'abord avec docker login (voir plus haut).

Utiliser avec Docker Compose✯

Le registre s'utilise de façon transparente dans un compose.yaml. Exemple combinant la construction d'une image et sa publication sur le registre :

services:
  mon-appli:
    image: registry.isima.fr/mon-projet/mon-appli:latest
    build:
      context: .
      dockerfile: Dockerfile
  • Construire l'image : docker compose build
  • La pousser sur le registre : docker compose push
  • Côté utilisateur, l'image est téléchargée automatiquement : docker compose up

Supprimer une image✯

La suppression se fait depuis l'interface web (onglet du dépôt, sélection du tag puis DELETE), à condition d'avoir au moins le rôle Maintainer sur le projet.

Vérifications avant de pousser