3.8. L’utilisation des informations d’identification docker pour les registres privés


Il est possible de fournir des builds avec un fichier .docker/config.json avec des informations d’identification valides pour les registres de conteneurs privés. Cela vous permet de pousser l’image de sortie dans un registre d’image de conteneur privé ou de tirer une image de constructeur du registre d’image de conteneur privé qui nécessite une authentification.

Il est possible de fournir des informations d’identification pour plusieurs référentiels au sein d’un même registre, chacun avec des informations d’identification spécifiques à ce chemin de registre.

Note

Ce n’est pas nécessaire pour le registre d’images de conteneur OpenShift Dedicated, car les secrets sont générés automatiquement pour vous par OpenShift Dedicated.

Le fichier .docker/config.json se trouve dans votre répertoire d’accueil par défaut et a le format suivant:

auths:
  index.docker.io/v1/: 
1

    auth: "YWRfbGzhcGU6R2labnRib21ifTE=" 
2

    email: "user@example.com" 
3

  docker.io/my-namespace/my-user/my-image: 
4

    auth: "GzhYWRGU6R2fbclabnRgbkSp=""
    email: "user@example.com"
  docker.io/my-namespace: 
5

    auth: "GzhYWRGU6R2deesfrRgbkSp=""
    email: "user@example.com"
Copy to Clipboard Toggle word wrap
1
L’URL du registre.
2
Le mot de passe crypté.
3
Adresse e-mail pour la connexion.
4
L’URL et les informations d’identification pour une image spécifique dans un espace de noms.
5
L’URL et les informations d’identification pour un espace de noms de registre.

Il est possible de définir plusieurs registres d’images de conteneur ou de définir plusieurs référentiels dans le même registre. Alternativement, vous pouvez également ajouter des entrées d’authentification à ce fichier en exécutant la commande de connexion docker. Le fichier sera créé s’il n’existe pas.

Kubernetes fournit des objets secrets, qui peuvent être utilisés pour stocker la configuration et les mots de passe.

Conditions préalables

  • Il faut avoir un fichier .docker/config.json.

Procédure

  1. Créez le secret à partir de votre fichier .docker/config.json local en entrant la commande suivante:

    $ oc create secret generic dockerhub \
        --from-file=.dockerconfigjson=<path/to/.docker/config.json> \
        --type=kubernetes.io/dockerconfigjson
    Copy to Clipboard Toggle word wrap

    Cela génère une spécification JSON du secret nommé dockerhub et crée l’objet.

  2. Ajoutez un champ pushSecret dans la section de sortie du BuildConfig et définissez-le au nom du secret que vous avez créé, qui dans l’exemple précédent est dockerhub:

    spec:
      output:
        to:
          kind: "DockerImage"
          name: "private.registry.com/org/private-image:latest"
        pushSecret:
          name: "dockerhub"
    Copy to Clipboard Toggle word wrap

    Il est possible d’utiliser la commande oc set build-secret pour définir le secret de poussée sur la configuration de construction:

    $ oc set build-secret --push bc/sample-build dockerhub
    Copy to Clipboard Toggle word wrap

    Il est également possible de lier le secret push au compte de service utilisé par la construction au lieu de spécifier le champ pushSecret. Les builds utilisent par défaut le compte de service constructeur. Le secret push est automatiquement ajouté à la construction si le secret contient un identifiant qui correspond au référentiel hébergeant l’image de sortie de la construction.

    $ oc secrets link builder dockerhub
    Copy to Clipboard Toggle word wrap
  3. Extrayez l’image du conteneur constructeur à partir d’un registre d’images de conteneur privé en spécifiant le champ pullSecret, qui fait partie de la définition de stratégie de construction:

    strategy:
      sourceStrategy:
        from:
          kind: "DockerImage"
          name: "docker.io/user/private_repository"
        pullSecret:
          name: "dockerhub"
    Copy to Clipboard Toggle word wrap

    Il est possible d’utiliser la commande oc set build-secret pour définir le secret de traction sur la configuration de construction:

    $ oc set build-secret --pull bc/sample-build dockerhub
    Copy to Clipboard Toggle word wrap
    Note

    Cet exemple utilise pullSecret dans une version Source, mais il est également applicable dans les builds Docker et Custom.

    Il est également possible de lier le pull secret au compte de service utilisé par la construction au lieu de spécifier le champ pullSecret. Les builds utilisent par défaut le compte de service constructeur. Le secret de traction est automatiquement ajouté à la construction si le secret contient un identifiant qui correspond au référentiel hébergeant l’image d’entrée de la build. Afin de lier le pull secret au compte de service utilisé par la build au lieu de spécifier le champ pullSecret, entrez la commande suivante:

    $ oc secrets link builder dockerhub
    Copy to Clipboard Toggle word wrap
    Note

    Dans la spécification BuildConfig, vous devez spécifier une image à partir de l’image pour profiter de cette fonctionnalité. Les builds de stratégie Docker générés par oc new-build ou oc new-app peuvent ne pas le faire dans certaines situations.

Retour au début
Red Hat logoGithubredditYoutubeTwitter

Apprendre

Essayez, achetez et vendez

Communautés

À propos de la documentation Red Hat

Nous aidons les utilisateurs de Red Hat à innover et à atteindre leurs objectifs grâce à nos produits et services avec un contenu auquel ils peuvent faire confiance. Découvrez nos récentes mises à jour.

Rendre l’open source plus inclusif

Red Hat s'engage à remplacer le langage problématique dans notre code, notre documentation et nos propriétés Web. Pour plus de détails, consultez le Blog Red Hat.

À propos de Red Hat

Nous proposons des solutions renforcées qui facilitent le travail des entreprises sur plusieurs plates-formes et environnements, du centre de données central à la périphérie du réseau.

Theme

© 2025 Red Hat