For AI agents: the complete documentation index is available at https://docs.ovhcloud.com/fr/llms.txt, the full documentation bundle is available at https://docs.ovhcloud.com/fr/llms-full.txt, and this page is available as Markdown at https://docs.ovhcloud.com/fr/guides/public-cloud/containers-orchestration/managed-private-registry/create-private-image.md.

Créer et utiliser une image Docker stockée dans un OVHcloud Managed Private Registry

Voir en Markdown

Découvrez comment créer et utiliser une image stockée dans un OVHcloud Managed Private Registry

Objectif

Le service OVHcloud Managed Private Registry vous fournit un registre Docker managé et authentifié, dans lequel vous pouvez stocker vos images Docker de manière privée. Ce guide explique comment créer une image Docker, la stocker dans le service OVHcloud Managed Private Registry et l'utiliser depuis un client Docker.

Prérequis

  • Un OVHcloud Managed Private Registry (consultez le guide « Créer un registre privé » pour plus d'informations)
  • Un accès à l'interface Harbor pour administrer le registre privé (consultez le guide « Se connecter à l'interface » pour plus d'informations)
  • Un projet privé et un utilisateur disposant des droits de lecture et d'écriture sur ce projet (consultez le guide « Gérer les utilisateurs et les projets » pour plus d'informations)

En pratique

Récupérer l'URL de votre OVHcloud Managed Private Registry

Espace client OVHcloud
OVHcloud CLI

Rendez-vous dans la section de votre registre privé dans l'espace client OVHcloud Public Cloud, puis, dans le bouton plus d'options (...) situé à droite, cliquez sur Harbor API.

API Harbor

Copiez l'URL de l'API Harbor : il s'agit de l'URL de votre registre privé et nous allons l'utiliser à plusieurs reprises dans ce guide.

API Harbor
Info

L'URL copiée commence par https://. Supprimez le préfixe https:// avant de l'utiliser dans des commandes Docker.

Créer une image Docker

Vous allez créer une image Docker à l'aide d'un Dockerfile très simple et de quelques fichiers de ressources.

Créez un dossier hello-ovh/ et, à l'intérieur, créez :

  • Un fichier Dockerfile :
FROM nginx:1.15-alpine

COPY index.html /usr/share/nginx/html/index.html
COPY ovh.svg /usr/share/nginx/html/ovh.svg
  • Un fichier index.html :
<!doctype html>
<html>
  <head>
    <title>OVHcloud K8S</title>
  </head>
  <body>
    <div class="title">
      <p>Hello from Private Registry!</p>
      <img src="./ovh.svg"/>
    </div>
  </body>
</html>
  • Un fichier ovh.svg (faites un clic droit et enregistrez-le) :

    (ovh.svg)

Vous devez avoir ces fichiers dans votre répertoire hello-ovh :

├── Dockerfile
├── index.html
└── ovh.svg
  • Rendez-vous dans le dossier hello-ovh, qui contient les trois fichiers, et lancez un docker build. Vous devez taguer votre build en utilisant l'URL de votre registre privé, le projet au sein du registre (private si vous avez suivi le guide « Gérer les utilisateurs et les projets ») et le nom de l'image (hello-ovh) :
docker build --tag [YOUR_PRIVATE_REGISTRY_URL]/[YOUR_PROJECT]/hello-ovh:1.0.0 .

Voici le résultat de l'exécution de la commande pour mon registre privé dans le projet private :

$ docker build --tag 8093ff7x.gra5.container-registry.ovh.net/private/hello-ovh:1.0.0 .
Sending build context to Docker daemon  14.34kB
Step 1/3 : FROM nginx:1.15-alpine
1.15-alpine: Pulling from library/nginx
e7c96db7181b: Pull complete 
264026bbe255: Pull complete 
a71634c55d29: Pull complete 
5595887beb81: Pull complete 
Digest: sha256:57a226fb6ab6823027c0704a9346a890ffb0cacde06bc19bbc234c8720673555
Status: Downloaded newer image for nginx:1.15-alpine
---> dd025cdfe837
Step 2/3 : COPY index.html /usr/share/nginx/html/index.html
---> f1f2487532bc
Step 3/3 : COPY ovh.svg /usr/share/nginx/html/ovh.svg
---> 3f803b45da18
Successfully built 3f803b45da18
Successfully tagged 8093ff7x.gra5.container-registry.ovh.net/private/hello-ovh:1.0.0
  • Connectez-vous à votre registre privé, avec un utilisateur disposant des droits d'écriture sur le projet (private-user si vous avez suivi le guide « Gérer les utilisateurs et les projets »)
docker login [YOUR_PRIVATE_REGISTRY_URL]

Dans mon registre privé :

$ docker login 8093ff7x.gra5.container-registry.ovh.net
Username: private-user
Password: 
Login Succeeded
  • Envoyez l'image dans le registre privé
docker push [YOUR_PRIVATE_REGISTRY_URL]/[YOUR_PROJECT]/hello-ovh:1.0.0

Dans mon exemple de registre privé :

$ docker push 8093ff7x.gra5.container-registry.ovh.net/private/hello-ovh:1.0.0
The push refers to repository [8093ff7x.gra5.container-registry.ovh.net/private/hello-ovh]
369ed87ef8b1: Pushed 
d2220a0eb85b: Pushed 
a521e1bbddf5: Pushed 
bf381a670956: Pushed 
a61993362baf: Pushed 
f1b5933fe4b5: Pushed 
1.0.0: digest: sha256:f5a6a8f0d7c95cf3926b504a7949c8575e478106b59d8913ab947729aa5bd075 size: 1568

En vous rendant dans votre interface Harbor, vous constatez qu'un dépôt hello-ovh est présent dans le projet private :

Dépôt hello-ovh

Ce dépôt stockera toutes les versions de l'image hello-ovh (pour l'instant, uniquement la 1.0.0) :

Dépôt hello-ovh

Déployer l'image privée

Vous pouvez maintenant utiliser docker pull (précédé d'un docker login sur votre registre privé si vous le faites depuis un autre ordinateur) pour déployer l'image depuis l'OVHcloud Managed Private Registry.

docker pull [YOUR_PRIVATE_REGISTRY_URL]/[YOUR_PROJECT]/hello-ovh:1.0.0 

Dans mon exemple de registre privé :

$ docker pull 8093ff7x.gra5.container-registry.ovh.net/private/hello-ovh:1.0.0
1.0.0: Pulling from private/hello-ovh
e7c96db7181b: Already exists 
264026bbe255: Already exists 
a71634c55d29: Already exists 
5595887beb81: Already exists 
4c1b9819c67d: Pull complete 
5df2876c6416: Pull complete 
Digest: sha256:f5a6a8f0d7c95cf3926b504a7949c8575e478106b59d8913ab947729aa5bd075
Status: Downloaded newer image for 8093ff7x.gra5.container-registry.ovh.net/private/hello-ovh:1.0.0

Vous pouvez ensuite l'exécuter :

docker run -d -p 80:80 [YOUR_PRIVATE_REGISTRY_URL]/[YOUR_PROJECT]/hello-ovh:1.0.0 

Dans mon exemple de registre privé :

$ docker run -d -p 8080:80 8093ff7x.gra5.container-registry.ovh.net/private/hello-ovh:1.0.0
c18f071c3c8c10ca636ed9be84878c12f3a270b6def131eb756f69435b978da1

Vous pouvez maintenant le tester avec la commande curl :

$ curl localhost:8080
<!doctype html>

<html>
<head>
<title>OVH K8S</title>
</head>
<body>
<div class="title">
<p>Hello from Private Registry!</p>
<img src="./ovh.svg"/>
</div>
</body>
</html>

Ou dans votre navigateur :

hello-ovh

Aller plus loin

Pour aller plus loin, consultez notre guide « Utiliser votre registre privé avec Kubernetes ».

Cette page vous a-t-elle aidé ?