Table des matières
1. Introduction au contexte
2. Environnement
3. 🎜>
Maison Opération et maintenance Docker Comment construire un entrepôt privé Docker

Comment construire un entrepôt privé Docker

Nov 10, 2020 pm 04:28 PM
docker

Comment construire un entrepôt privé Docker

1. Introduction au contexte

Dans Docker, lorsque nous exécutons la commande docker pull xxx, nous pouvons être curieux de savoir où Docker recherchera et qu'en est-il du téléchargement. l'image ?

Recommandations associées : Tutoriel Docker

Question réponse :

Cela vient en fait de l'adresse de recherche Registry.hub.docker.com, il s'agit de l'entrepôt public fourni par la société Docker. L'image ci-dessus est accessible à tous et peut être utilisée. Par conséquent, nous pouvons également apporter l'adresse de l'entrepôt pour extraire l'image, par exemple : docker pull Registry.hub.docker.com/library/alpine, mais sachez que le nom par défaut de l'image téléchargée de cette manière sera plus long.

Si nous voulons utiliser Docker dans l'entreprise, il nous est fondamentalement impossible de télécharger des projets commerciaux sur un entrepôt public. Alors, que pouvons-nous faire si nous voulons le partager avec plusieurs machines ?

En raison de ce besoin, les entrepôts privés entrent en jeu.

Le soi-disant entrepôt privé est quelque chose de similaire à un entrepôt public construit localement (LAN). Une fois construit, nous pouvons soumettre l'image à l'entrepôt privé. De cette façon, nous pouvons utiliser Docker pour exécuter les images de nos projets et éviter le risque d'exposition de projets commerciaux.

Ci-dessous, nous utilisons l'image du registre officiel pour créer un entrepôt d'images privé. Bien sûr, il existe de nombreuses autres méthodes.

2. Environnement

Préparez deux serveurs avec docker installé : Machine serveur (le nom d'hôte est le registre) : serveur d'entrepôt privé Docker, conteneur de registre en cours d'exécution ; Machine de test (le nom d'hôte est le nœud) : serveur Docker ordinaire, téléchargez une image de test nginx sur ce serveur, puis téléchargez-la sur le serveur de registre pour le test

3. 🎜>

    Téléchargez le registre d'images
  1. # docker pull registryUsing default tag: latest
    latest: Pulling from library/registry
    81033e7c1d6a: Pull complete 
    b235084c2315: Pull complete 
    c692f3a6894b: Pull complete 
    ba2177f3a70e: Pull complete 
    a8d793620947: Pull complete 
    Digest: sha256:672d519d7fd7bbc7a448d17956ebeefe225d5eb27509d8dc5ce67ecb4a0bce54
    Status: Downloaded newer image for registry:latest复制代码
    Copier après la connexion

  2. Affichez l'image
  3. # docker imagesREPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
    registry            latest              f32a97de94e1        3 months ago        25.8 MB复制代码
    Copier après la connexion

  4. Exécutez le conteneur de registre
  5. # docker run -itd -v /data/registry:/var/lib/registry -p 5000:5000 --restart=always --name registry registry:latest

    06a972de6218b1f1c3bf9b53eb9068dc66d147d14e18a89ab51db13e339d3dc9Description du paramètre -itd : ouvrez un pseudo-terminal dans le conteneur pour les opérations interactives et exécutez-le en arrière-plan ; -v : lie le répertoire /data/registry de l'hôte au répertoire /var/lib/registry du conteneur (ce répertoire est le répertoire dans lequel les fichiers image sont stockés dans le conteneur de registre) pour obtenir la persistance des données ; -p : port de mappage ; accéder au port 5000 de l'hôte accédera au service du conteneur de registre ; --restart=always : Il s'agit de la stratégie de redémarrage. Si le conteneur se ferme anormalement, le conteneur sera automatiquement redémarré ; --name Registry : Créez un conteneur nommé Registry, vous pouvez le nommer comme vous le souhaitez ; registre:dernière : C'est l'image qui vient d'être extraite

  6. Tester toutes les images de l'entrepôt d'images
  7. # curl http://127.0.0.1:5000/v2/_catalog
    Maintenant, il est vide car il vient d'être exécuté et il ne contient aucun contenu d'image. {"repositories":[]}

  8. 4. Tester l'entrepôt d'images (opération côté test)

    Modifier l'entrepôt source et l'image
  1. # vim /etc/docker/daemon.json{"registry-mirrors": [ "https://registry.docker-cn.com"]
    }# systemctl restart docker复制代码
    Copier après la connexion

  2. Téléchargez l'image nginx
  3. # docker pull nginx# docker imagesREPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
    nginx               latest              719cd2e3ed04        2 weeks ago         109MB复制代码
    Copier après la connexion

  4. Tagez l'image
  5. # docker tag nginx:latest registry服务器:5000/nginx:kurisu复制代码
    Copier après la connexion

    Description du format : Utilisation : docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]

    Ceci est l'image source, qui est également le fichier image qui vient d'être extrait

    nginx:lastest Ceci est l'image cible, qui est également l'adresse IP et le port de ; le serveur d'images privé du registre ;
    registry服务器:5000/nginx:kurisuAfficher l'effet

     # docker images
      
     REPOSITORY                 TAG                 IMAGE ID            CREATED             SIZE
     registry服务器:5000/nginx   kurisu              719cd2e3ed04        2 weeks ago         109MB
     nginx                      latest              719cd2e3ed04        2 weeks ago         109MB复制代码
    Copier après la connexion

  6. Télécharger sur le serveur miroir
  7. # docker push registry服务器:5000/nginxThe push refers to repository [registry服务器:5000/nginx]
    Get https://registry服务器:5000/v2/: http: server gave HTTP response to HTTPS client复制代码
    Copier après la connexion

    Ceci est une erreur. Vous avez besoin de la méthode https pour. upload. Nous pouvons modifier daemon.json pour le résoudre :

    [root@node ~]# vim /etc/docker/daemon.json {  "registry-mirrors": [ "https://registry.docker-cn.com"],  "insecure-registries": [ "registry服务器:5000"]
    }复制代码
    Copier après la connexion

    Ajoutez l'adresse du serveur miroir privé, notez que le format d'écriture est json, il y a des exigences d'écriture strictes, puis redémarrez le service docker :


    Télécharger à nouveau : # systemctl restart docker

    # docker push registry服务器:5000/nginxThe push refers to repository [registry服务器:5000/nginx]
    d7acf794921f: Pushed
    d9569ca04881: Pushed
    cf5b3c6798f7: Pushed
    kurisu: digest: sha256:079aa93463d2566b7a81cbdf856afc6d4d2a6f9100ca3bcbecf24ade92c9a7fe size: 948复制代码
    Copier après la connexion

  8. Tester le téléchargement de l'image
  9. Le test de téléchargement est OK. Testons d'abord le téléchargement de l'image de la boîte occupée qui vient d'être téléchargée à partir du serveur de registre. supprimez l'image sur l'hôte du nœud :

    # docker rmi -f $(docker images -aq)Untagged: registry服务器:5000/nginx:kurisu
    Untagged: registry服务器:5000/nginx@sha256:079aa93463d2566b7a81cbdf856afc6d4d2a6f9100ca3bcbecf24ade92c9a7fe
    Untagged: nginx:latest
    Untagged: nginx@sha256:bdbf36b7f1f77ffe7bd2a32e59235dff6ecf131e3b6b5b96061c652f30685f3a
    Deleted: sha256:719cd2e3ed04781b11ed372ec8d712fac66d5b60a6fb6190bf76b7d18cb50105
    Deleted: sha256:e9b6506fb887de50972aefd99d7c5eb56b1a8e757ed953cdfecb86b5359bcb22
    Deleted: sha256:55d9d9692a9615a28d183a42bc3881a72a39393feba3664e669e7affb78daa76
    Deleted: sha256:cf5b3c6798f77b1f78bf4e297b27cfa5b6caa982f04caeb5de7d13c255fd7a1e复制代码
    Copier après la connexion

    Afficher Toutes les images sur l'hôte du nœud sont supprimées en même temps :
    # docker imagesREPOSITORY          TAG                 IMAGE ID            CREATED             SIZE复制代码
    Copier après la connexion

    Ensuite, téléchargez l'image nginx depuis le serveur de registre :

    # docker pull registry服务器:5000/nginx:kurisukurisu: Pulling from nginxfc7181108d40: Pull complete
    c4277fc40ec2: Pull complete
    780053e98559: Pull complete
    Digest: sha256:079aa93463d2566b7a81cbdf856afc6d4d2a6f9100ca3bcbecf24ade92c9a7fe
    Status: Downloaded newer image for registry服务器:5000/nginx:kurisu复制代码
    Copier après la connexion

    Afficher l'image sur l'hôte du nœud :

    # docker imagesREPOSITORY                 TAG                 IMAGE ID            CREATED             SIZE
    registry服务器:5000/nginx   kurisu              719cd2e3ed04        2 weeks ago         109MB复制代码
    Copier après la connexion

  10. Afficher les images de l'entrepôt distant

Liste de toutes les images :
  • # curl http://registry服务器:5000/v2/_catalog{"repositories":["nginx"]}复制代码
    Copier après la connexion
Liste les balises des images nginx :
  • # curl http://registry服务器:5000/v2/nginx/tags/list{"name":"nginx","tags":["kurisu"]}复制代码
    Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Commandes de chat et comment les utiliser
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment changer la source d'image Docker en Chine Comment changer la source d'image Docker en Chine Apr 15, 2025 am 11:30 AM

Vous pouvez passer à la source de miroir domestique. Les étapes sont les suivantes: 1. Modifiez le fichier de configuration /etc/docker/daemon.json et ajoutez l'adresse source miroir; 2. Après enregistrer et sortir, redémarrez le service Docker Sudo Systemctl Docker pour améliorer la vitesse et la stabilité du téléchargement d'image.

Comment créer un miroir dans Docker Comment créer un miroir dans Docker Apr 15, 2025 am 11:27 AM

Étapes pour créer une image docker: écrivez un dockerfile qui contient les instructions de construction. Créez l'image dans le terminal, en utilisant la commande docker build. Marquez l'image et attribuez des noms et des balises à l'aide de la commande docker tag.

Comment lire la version docker Comment lire la version docker Apr 15, 2025 am 11:51 AM

Pour obtenir la version Docker, vous pouvez effectuer les étapes suivantes: exécutez la commande docker "docker --version" pour afficher les versions client et serveur. Pour Mac ou Windows, vous pouvez également afficher les informations de version via l'onglet Version de la GUI de bureau Docker ou du menu de bureau à propos de Docker.

Comment afficher les journaux de Docker Comment afficher les journaux de Docker Apr 15, 2025 pm 12:24 PM

Les méthodes pour afficher les journaux Docker incluent: à l'aide de la commande docker logs, par exemple: docker logs contener_name Utilisez la commande docker exec pour exécuter / bin / sh et afficher le fichier journal, par exemple: docker exec -it contener_name / bin / sh; Cat /var/log/continer_name.log Utilisez la commande docker-compose JORS de Docker Compose, par exemple: docker-compose -f docker-com

Comment utiliser Docker Desktop Comment utiliser Docker Desktop Apr 15, 2025 am 11:45 AM

Comment utiliser Docker Desktop? Docker Desktop est un outil pour exécuter des conteneurs Docker sur les machines locales. Les étapes à utiliser incluent: 1. Installer Docker Desktop; 2. Démarrer Docker Desktop; 3. Créer une image Docker (à l'aide de DockerFile); 4. Build Docker Image (en utilisant Docker Build); 5. Exécuter Docker Container (à l'aide de Docker Run).

Comment mettre à jour l'image de Docker Comment mettre à jour l'image de Docker Apr 15, 2025 pm 12:03 PM

Les étapes pour mettre à jour une image Docker sont les suivantes: Tirez la dernière étiquette d'image Nouvelle image Supprimer l'ancienne image pour une balise spécifique (facultative) Redémarrez le conteneur (si nécessaire)

Comment vérifier le nom du conteneur Docker Comment vérifier le nom du conteneur Docker Apr 15, 2025 pm 12:21 PM

Vous pouvez interroger le nom du conteneur Docker en suivant les étapes: répertorier tous les conteneurs (Docker PS). Filtrez la liste des conteneurs (à l'aide de la commande grep). Obtient le nom du conteneur (situé dans la colonne "Noms").

Comment enregistrer l'image docker Comment enregistrer l'image docker Apr 15, 2025 am 11:54 AM

Pour enregistrer l'image dans Docker, vous pouvez utiliser la commande docker commit pour créer une nouvelle image, contenant l'état actuel du conteneur spécifié, Syntaxe: Docker Commit [Options] Nom d'image de l'ID de conteneur. Pour enregistrer l'image dans le référentiel, vous pouvez utiliser la commande docker push, Syntax: Docker Push Image Name [: Tag]. Pour importer des images enregistrées, vous pouvez utiliser la commande docker pull, syntaxe: docker pull name [: tag].

See all articles