Déployer l'entrepôt privé Docker Harbor

Un, port

1.1 Aperçu du port

■ Harbor est déployé en tant que plusieurs conteneurs Docker, de sorte qu'il peut être déployé sur n'importe quelle distribution Linux prenant en charge Docker. (Le registre est son composant principal)

■ Les avantages de Harbor par rapport au registre sont les suivants: Harbor prend en charge plusieurs fonctions, la gestion de l'interface graphique, les autorisations multi-utilisateurs, les mécanismes de gestion des rôles et les mécanismes de sécurité

■ L'hôte du serveur doit installer Python, le moteur Docker et Docker Compose (l'environnement Web prend en charge le langage PY, Python doit donc être installé)

Deux, déploiement du port

2.1. Télécharger l'installateur de Harbor

Insérez la description de l'image ici

[root@docker ~]# tar zxvf harbor-offline-installer-v1.2.2.tgz -C /opt
[root@docker ~]# cd /opt
[root@docker opt]# ls
[root@docker opt]# cd harbor/
[root@docker harbor]# ls

Insérez la description de l'image ici

2.2, configurer le fichier de paramètres du port

Remarque: il existe deux types de paramètres dans le fichier de configuration Harbor.cfg: les paramètres obligatoires et les paramètres facultatifs

(1) Paramètres obligatoires Ces paramètres doivent être définis dans le fichier de configuration Harbor.cfg. Si l'utilisateur les met à jour et exécute le script install.sh pour réinstaller Harbor, les paramètres prendront effet. Les paramètres spécifiques sont les suivants:

  • hostname: utilisé pour accéder à l'interface utilisateur et enregistrer les services. Il doit s'agir de l'adresse IP ou du nom de domaine complet (FQDN) de la machine cible
    , comme 192.168.140.30 ou hub.gc.cn. N'utilisez pas localhost ou 127.0.0.1 comme nom d'hôte
  • ui_url_protocol: (http ou https, la valeur par défaut est http) le protocole utilisé pour accéder aux services d'interface utilisateur et de jeton / notification. Si la notarisation est activée, ce paramètre doit être https. (Lors de l'authentification, la base de données Mysql sera comparée et le jeton sera accordé)
  • max_job_workers: thread de travail de copie miroir
  • db_password: Le mot de passe de l'utilisateur root de la base de données MySQL utilisé pour db_auth
  • custom_crt: cet attribut peut être défini pour s'ouvrir ou se fermer, et il est ouvert par défaut. Lors de l'ouverture de cette propriété, préparez un script pour créer une clé privée et un certificat racine pour générer / vérifier les jetons de registre. Lorsque la clé et le certificat racine sont fournis par une source externe, désactivez cette propriété
  • ssl_cert: le chemin du certificat SSL, appliqué uniquement lorsque le protocole est défini sur https
  • ssl_cert_key: le chemin de la clé SSL, appliqué uniquement lorsque le protocole est défini sur https
  • secretkey_path: chemin de clé utilisé pour chiffrer ou déchiffrer le mot de passe du registre distant dans la stratégie de réplication

(2) Paramètres facultatifs

Ces paramètres sont facultatifs pour la mise à jour, c'est-à-dire que les utilisateurs peuvent les laisser comme valeurs par défaut et les mettre à jour sur le Web ul après le démarrage de Harbor. Si vous entrez Harbor.cfg, cela ne prendra effet que lorsque Harbor sera démarré pour la première fois. , puis ceux-ci La mise à jour des paramètres, Harbor.cfg sera ignoré.

Remarque: si vous choisissez de définir ces paramètres via l'interface utilisateur, assurez-vous d'effectuer cette opération immédiatement après le démarrage de Harbor. Plus précisément, le auth_mode requis doit être défini avant l'enregistrement ou la création de nouveaux utilisateurs dans Harbor. Lorsqu'il y a des utilisateurs dans le système (à l'exception de l'utilisateur admin par défaut), auth_mode ne peut pas être modifié. Les paramètres spécifiques sont les suivants:

  • E-mail: Harbour a besoin de ce paramètre pour envoyer des e-mails de «réinitialisation de mot de passe» aux utilisateurs, et il n'est nécessaire que lorsque cette fonctionnalité est nécessaire, et il n'est pas activé lorsque sSL est connecté par défaut. Si le serveur SMTP requiert ssL mais ne prend pas en charge STARTTLS, alors SSL doit être activé en définissant email_ssl = TRUE
  • harbour_admin_password: Le mot de passe initial de l'administrateur, qui ne prend effet que lorsque Harbour est démarré pour la première fois. Après cela, ce paramètre sera ignoré et le mot de passe de l'administrateur doit être défini dans U.
    Veuillez noter que le nom d'utilisateur / mot de passe par défaut est admin / Harbor12345
  • auth_mode: type d'authentification utilisé. Par défaut, il s'agit de db_auth, c'est-à-dire que les informations d'identification sont stockées dans la base de données. Pour l'authentification LDAP (authentification sous forme de fichier), définissez-la sur ldap_auth
  • self_registration: activer / désactiver la fonction d'enregistrement des utilisateurs. Lorsqu'elle est désactivée, les nouveaux utilisateurs ne peuvent être créés que par des utilisateurs administrateurs et seuls les utilisateurs administrateurs peuvent créer de nouveaux utilisateurs dans Harbour.
    Remarque: lorsque auth_mode est défini sur ldap_auth, la fonction d'auto-enregistrement sera toujours désactivée et l'indicateur est ignoré
  • Token_expiration: le délai d'expiration (minutes) du jeton créé par le service de jeton, la valeur par défaut est 30 minutes
  • project_creation_restriction: indicateur utilisé pour contrôler quels utilisateurs ont le droit de créer des projets. Par défaut, tout le monde peut créer un projet.
    Si la valeur est définie sur "adminonly", seul l'administrateur peut créer des projets
  • verify_remote_cert: ouvert ou fermé, ouvert par défaut. Cet indicateur détermine s'il faut vérifier le certificat SSL / TLS lorsque Harbour communique avec l'instance de registre distant.
    La désactivation de cette propriété contournera la vérification SSL / TLS, qui est souvent utilisée lorsque l'instance distante a un certificat auto-signé ou non approuvé
  • De plus, par défaut, Harbor stocke l'image sur le système de fichiers local. Dans un environnement de production, vous pouvez envisager d'utiliser d'autres backends de stockage au lieu de systèmes de fichiers locaux, tels que S3, Openstack Swif, Ceph, etc. Mais besoin de mettre à jour le fichier commun / templates / registry / config.yml

2.3, port de départ

[root@docker harbor]# vim harbor.cfg 

Insérez la description de l'image ici

[root@docker opt]# rz   #下载docker-compose

[root@docker opt]# ls
containerd  docker-compose  harbor  rh  test.sh
[root@docker opt]# chmod +x docker-compose
[root@docker opt]# mv docker-compose  /usr/bin/
[root@docker harbor]# sh install.sh

Insérez la description de l'image ici

[root@docker harbor]# docker-compose ps

Insérez la description de l'image ici

2.3.1. Connectez-vous au port via un navigateur

Insérez la description de l'image ici

2.3.2, connexion locale

[root@docker harbor]# docker login -u admin -p Harbor12345 http://127.0.0.1

Insérez la description de l'image ici

2.3.3, télécharger le test du miroir

[root@docker harbor]# docker pull cirros

2.3.4, étiqueter l'image

[root@docker harbor]# docker tag cirros:latest 127.0.0.1/public-07/cirros:v1

2.3.5, téléchargez l'image dans le port

[root@docker harbor]# docker push 127.0.0.1/public-07/cirros:v1

Insérez la description de l'image ici

Insérez la description de l'image ici

2.3.6, le client télécharge le miroir

[root@docker1 system]# docker login -u admin -p Harbor12345 http://192.168.140.20
[root@docker1 system]# docker pull 192.168.140.20/public-07/cirros:v1

Insérez la description de l'image ici

2.3.7. Téléchargez l'image Apache et téléchargez-la dans l'entrepôt privé

[root@docker1 system]# docker pull httpd
[root@docker1 system]# docker images

Insérez la description de l'image ici

[root@docker1 system]# docker tag httpd:latest 192.168.140.20/public-07/httpd:v1  #打标签
[root@docker1 system]# docker images

Insérez la description de l'image ici

[root@docker1 system]# docker push 192.168.140.20/public-07/httpd:v1

Insérez la description de l'image ici
Insérez la description de l'image ici

2.4. Réinstaller après avoir modifié le fichier de configuration

[root@docker harbor]# docker-compose down -v   #必须在有docker-compose.yml文件的目录下操作
[root@docker harbor]# ./prepare  #重新执行安装

Insérez la description de l'image ici

[root@docker harbor]# docker-compose up -d
[root@docker harbor]# docker ps -a

Insérez la description de l'image ici

2.5, créer un utilisateur Harbour

Créer d'abord un utilisateur
Insérez la description de l'image ici
Insérez la description de l'image ici

Insérez la description de l'image ici

2.5.1, ajouter des membres

Insérez la description de l'image ici

[root@docker1 system]# docker login -u zhangsan -p Abc12345 http://192.168.140.20

Insérez la description de l'image ici

2.5.2, utilisez la nouvelle adhésion pour télécharger le miroir

[root@docker1 system]# docker images

Insérez la description de l'image ici

[root@docker1 system]# docker pull 192.168.140.20/public-07/cirros:v1
[root@docker1 system]# docker images

Insérez la description de l'image ici

注:如需重新部署,需要移除 Harbor服务容器全部数据
持久数据,如镜像,数据库等在宿主机的/data/目录下,日志在宿主机的/var/log/Harbor/目录下
rm -rf /data/database/
rm -rf /data/registry/

Je suppose que tu aimes

Origine blog.csdn.net/weixin_50344814/article/details/114867294
conseillé
Classement