Basé sur centos7 : tutoriel de déploiement et d'installation de Harbor-2.7.2

Basé sur centos7 : tutoriel de déploiement et d'installation de Harbor-2.7.2

1. Introduction aux ressources logicielles

Harbour est le projet DockerRegistry open source de VMware au niveau de l'entreprise. L'adresse du projet est https://github.com/vmware/harbor. Son objectif est d'aider les utilisateurs à créer rapidement un service de registre Docker au niveau de l'entreprise. Il est basé sur le registre open source de Docker et fournit les fonctions requises par les utilisateurs d'entreprise telles que l'interface utilisateur de gestion, le contrôle d'accès basé sur les rôles (Role Based Access Control), l'intégration AD/LDAP et la journalisation d'audit (Auditlogging). Il prend également en charge nativement le chinois. Chaque composant de Harbor est construit comme un conteneur Docker et est déployé à l'aide de Docker Compose. Le modèle Docker Compose utilisé pour déployer Harbor se trouve dans /Deployer/docker-compose.yml et se compose de conteneurs 5. Ces conteneurs sont connectés entre eux via des liens Docker et les conteneurs peuvent accéder les uns aux autres via les noms de conteneurs. Pour les utilisateurs finaux, seul le port de service du proxy (c'est-à-dire Nginx) doit être exposé

Proxy : Un proxy inverse composé d'un serveur Nginx.
Registre : une instance de conteneur composée de l'image de registre open source officielle de Docker.
UI : les services de base de l'architecture. Le code qui constitue ce conteneur est le corps principal du projet Harbour. MySQL : un conteneur de base de données composé de l'image MySQL officielle.
Journal : le conteneur exécutant rsyslogd collecte les journaux des autres conteneurs via log-driver.

2. Caractéristiques du port

a. Contrôle basé sur les rôles : les utilisateurs et les entrepôts sont organisés en fonction de projets, et les utilisateurs peuvent avoir différentes autorisations en fonction des projets. b.
Stratégie de réplication basée sur les miroirs : les miroirs peuvent être répliqués entre plusieurs instances Harbor. c. Prise en charge de LDAP : utilisateur de Harbor l'autorisation peut utiliser les utilisateurs LDAP existants
, la suppression d'image et le garbage collection : les images peuvent être supprimées et l'espace occupé par l'image peut être recyclé. La plupart des API d'opération utilisateur permettent aux utilisateurs d'étendre le système.

E. Interface utilisateur : les utilisateurs peuvent facilement parcourir, rechercher des entrepôts d'images et gérer des projets
F. Fonction de déploiement facile : Harbor fournit une installation en ligne et hors ligne, en plus de l'installation d'appareils virtuels.
G. Relation entre Harbour et le registre Docker : Harbor encapsule essentiellement le registre Docker et l'étend. son propre module métier

3. Processus de certification portuaire

a. Dockerdaemon extrait l'image du registre Docker.
b. Si le registre Docker nécessite une autorisation, le registre renverra une réponse 401 non autorisée et la réponse inclura des informations sur la façon dont le client Docker s'authentifie.
c. Dockerclient envoie une requête au serveur d'authentification pour obtenir le jeton d'authentification en fonction des informations renvoyées par le registre.
d. Le serveur d'authentification vérifie si les informations utilisateur soumises répondent aux exigences commerciales en fonction de sa propre mise en œuvre commerciale. e. L'entrepôt de données utilisateur renvoie des informations relatives à l'utilisateur.
f. Le serveur d'authentification générera un jeton basé sur les informations utilisateur interrogées, ainsi que les informations d'autorisation pertinentes de l'utilisateur actuel. Ce qui précède est le processus d'autorisation complet. Lorsque l'utilisateur termine le processus ci-dessus, l'opération pull/push pertinente peut être effectuée. Les informations d'authentification seront portées dans l'en-tête de la demande à chaque fois

4. Processus d'authentification Harbour
A. Tout d'abord, la demande est interceptée par le conteneur proxy et est transmise au serveur d'authentification désigné.
b. Si le serveur d'authentification est configuré avec l'authentification d'autorité, 401 sera renvoyé. Informez dockerclient qu'un jeton valide doit être inclus dans une requête spécifique
. L'adresse logique d'authentification pointe vers les services principaux dans le diagramme d'architecture.
c. Lorsque le client Docker reçoit le code d'erreur. Le client enverra une demande d'authentification (avec nom d'utilisateur et mot de passe) aux services principaux pour une authentification d'authentification de base.
d. Lorsque la requête de C est envoyée à ngnix, ngnix enverra la requête avec le nom d'utilisateur et le mot de passe aux services principaux en fonction de l'adresse d'authentification configurée.
e. Une fois que coreservices a obtenu le nom d'utilisateur et le mot de passe, il authentifie les informations utilisateur (soit en utilisant sa propre base de données, soit en impliquant LDAP). Après succès, les informations sur l'authentification réussie sont renvoyées.

1. Installation des exigences sous-jacentes

(1) Python doit être 2.7 ou supérieur (le mien est python-2.7.5)

centos自带

(2) Le moteur Docker doit être 1.10 ou supérieur (le mien est docker-18.06.1)

uname -r
3.10.0-1160.el7.x86_64

(3) Docker Compose doit être 1.6.0 ou supérieur (le mien est Docker Compose-2.17.3)

Installer docker-compose
1. Téléchargez le fichier binaire docker-compose depuis github et installez-le.
Téléchargez la dernière version du fichier docker-compose.

curl -L https://github.com/docker/compose/releases/download/1.17.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose

Si l'accès à github est trop lent, vous pouvez utiliser daocloud pour le télécharger.

curl -L https://github.com/docker/compose/releases/download/1.9.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
#添加可执行权限
chmod +x /usr/local/bin/docker-compose

La deuxième façon est de le télécharger depuis le site officiel et de l'importer dans /usr/local/bin en centos. Je téléchargerai le fichier sur la ressource. Prenez-le depuis
https://github.com/docker/compose/releases
pour tester les résultats de l'installation

docker-compose --version
 
docker-compose version 1.16.1, build 1719ceb

2. Installer Harbour

1. Adresse de téléchargement officielle du port : https://github.com/goharbor/harbor/releases

(Je vais télécharger le fichier sur mes ressources et le télécharger moi-même)

2. Téléchargez sur le chemin du serveur : /opt/software, puis extrayez-le dans /opt/module

tar -zxvf  ./二进制包名 -C /opt/module

Insérer la description de l'image ici
Modifiez le fichier de configuration et supprimez le suffixe
vim harbour.yml du fichier de configuration.
Insérer la description de l'image ici

3.Modifier le fichier de configuration du docker

vim démon.json

{
    
    
    "data-root": "/opt/module/docker_data",
 "log-driver": "json-file",
 "log-opts": {
    
    
   "max-size": "100m"
 },
 "storage-driver": "overlay2",
 "storage-opts": [
   "overlay2.override_kernel_check=true"
 ],
 "insecure-registries": [
   "192.168.2.221:80"
 ],
 "registry-mirrors": [
   "https://registry.docker-cn.com",
   "https://a8qh6yqv.mirror.aliyuncs.com",
   "http://hub-mirror.c.163.com"
 ]
}
#上如果出现报错可将这个配置删除重新加载
 "storage-driver": "overlay2",
 "storage-opts": [
   "overlay2.override_kernel_check=true"
 ],
 systemctl stop docker    # 重启docker
 systemctl daemon-reload  #加载配置文件
 systemctl start docker

---------/docker.service Enregistrements de documentation (cette partie est mon dossier personnel, veuillez l'ignorer)----------------------- - ---------
vim /etc/systemd/system/docker.service

[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target firewalld.service
Wants=network-online.target

[Service]
Type=notify
ExecStart=/usr/bin/dockerd
ExecReload=/bin/kill -s HUP \$MAINPID
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
TimeoutStartSec=0
Delegate=yes
KillMode=process
Restart=on-failure
StartLimitBurst=3
StartLimitInterval=60s

[Install]
WantedBy=multi-user.target

4. Installez hardor et exécutez le script install.sh

./install.sh

Pour déterminer si l'installation a réussi, le résultat sera affiché une fois le script exécuté, comme indiqué dans cet article :

[Step 5]: starting Harbor ...
[+] Running 10/10
 ⠿ Network harbor_harbor        Created                                                                                                  0.1s
 ⠿ Container harbor-log         Started                                                                                                  0.8s
 ⠿ Container registry           Started                                                                                                  1.8s
 ⠿ Container harbor-db          Started                                                                                                  1.8s
 ⠿ Container harbor-portal      Started                                                                                                  1.7s
 ⠿ Container registryctl        Started                                                                                                  1.6s
 ⠿ Container redis              Started                                                                                                  1.7s
 ⠿ Container harbor-core        Started                                                                                                  2.3s
 ⠿ Container harbor-jobservice  Started                                                                                                  3.1s
 ⠿ Container nginx              Started                                                                                                  3.0s
✔ ----Harbor has been installed and started successfully.----

Vérifiez l'image du menu fixe et constatez qu'il y a plus d'images dures.

5. Commencez dur

Accédez au répertoire /opt/module/hardor et exécutez

docker-compose up -d

Exécutez docker ps pour afficher le conteneur
Insérer la description de l'image ici

6. Vous pouvez afficher le contenu dans le navigateur

http://192.168.2.221   # yml配置文件配置的
username/password : admin/Harbor12345 # 默认密码

Insérer la description de l'image ici
Comment arrêter et démarrer Harbour

 //切换到harbor安装包目录
docker-compose stop   //停止Harbor
docker-compose start  //启动Harbor

7. Connexion en ligne de commande du serveur

[root@only harbor]# docker login -u admin http://192.168.2.221
Password:
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store
Login Succeeded

Vous pouvez également vous connecter en exposant votre mot de passe, tel que le suivant

 docker login -u admin -p Harbor12345 http://harbor:8079

Installation et déploiement du port terminés

Utilisation du port

Étape 1 : Il est recommandé de jeter un œil d'abord à cet exemple

Utilisez la conteneurisation Docker pour déployer mysql-8.0.27 et modifiez son port par défaut 3306 en 3306 pour enregistrer l'intégralité du processus. Lien : http://t.csdn.cn/C5jiu

Étape 2 : Modifiez la balise d'image et poussez l'image MySQL vers le port
#修改镜像 tag:
docker tag mysql:latest 192.168.2.221:80/library/mysql:8.0.27
#登录harbor
docker login -u admin -p 123456 192.168.2.221:80
#推送镜像到harbor
docker push 192.168.2.221:80/library/mysql:8.0.27

Insérer la description de l'image ici
Veuillez ignorer les enregistrements personnels
#Tagez le miroir et changez son nom

docker tag 192.168.2.221:80/library/mysql:8.0.12 168.2.221:80/library/mysql:v8.0.12
Étape 3 : Afficher l'image

Insérer la description de l'image ici
La fonction d'image push est terminée.
Créez d'autres utilisateurs normaux pour voir le miroir
Insérer la description de l'image ici

Étape 4 : Téléchargez l'image
docker rmi 192.168.2.221:80/library/mysql:8.0.27       //先删除本地镜像
docker pull 192.168.2.221:80/library/mysql:8.0.27 //拉取镜像
v1: Pulling from library/mysql:8.0.27
Digest: sha256:81de8ab261ecfdb0bfd66ed1b1db8c13222b288fcd732c1dcdd09446f250b185
Status: Downloaded newer image for 192.168.2.221:80/library/mysql:8.0.27

les références

Veuillez me corriger s'il y a des erreurs. S'il y a une infraction, veuillez me contacter pour la supprimer.
https://www.cnblogs.com/wxwgk/p/13287336.html
https://cloud.tencent.com/developer/article/1865259

Je suppose que tu aimes

Origine blog.csdn.net/Liu__sir__/article/details/130360950
conseillé
Classement