In diesem Artikel wird die Zusammensetzung der Harbor-Architektur erläutert und wie die einzelnen Komponenten zur Laufzeit verwendet werden. Architektur Containerinformationen [root@liumiao Hafen]# docker-compose ps Name Befehl Status Ports ------------------------------------------------------------------------------------------------------------------------------- harbor-adminserver /harbor/start.sh Nach oben harbor-db /usr/local/bin/docker-entr … Bis 3306/tcp harbor-jobservice /harbor/start.sh Nach oben harbor-log /bin/sh -c /usr/local/bin/ ... Up 127.0.0.1:1514->10514/tcp harbor-ui /harbor/start.sh Nach oben nginx nginx -g Daemon aus; Aktiv 0.0.0.0:443->443/tcp, 0.0.0.0:4443->4443/tcp, 0.0.0.0:80->80/tcp redis docker-entrypoint.sh redis ... Bis 6379/tcp Registrierung /entrypoint.sh serve /etc/ ... Bis 5000/tcp [root@liumiao harbor]# Spezifische Anweisungen Proxy Der Proxy verwendet nginx als Reverse-Proxy, und der Kern des gesamten Prozesses liegt in der nginx-Konfigurationsdatei. In der folgenden Konfigurationsdatei können Sie die Anweisungen von Harbor zur Integration verschiedener anderer Komponenten deutlich erkennen, und die tatsächliche Implementierung hängt im Wesentlichen von den nginx-Einstellungen ab. [root@liumiao-Hafen]# ls LIZENZ allgemein docker-compose.notary.yml ha harbor.v1.5.2.tar.gz Open_Source_Lizenz HINWEIS docker-compose.clair.yml docker-compose.yml harbor.cfg install.sh vorbereiten [root@liumiao-Hafen]# cat common/config/nginx/nginx.conf Arbeiterprozesse automatisch; Ereignisse { Arbeiterverbindungen 1024; verwenden Sie epoll; multi_accept ein; } http { tcp_nodelay ein; # dies ist notwendig, damit wir die Anforderungspufferung in allen Fällen deaktivieren können Proxy_http_Version 1.1; Upstream-Registrierung { Server-Registrierung: 5000; } Upstream-Benutzeroberfläche { Server-Benutzeroberfläche:8080; } log_format timed_combined '$remote_addr - ' '"$Anfrage" $status $body_bytes_gesendet ' '"$http_referer" "$http_user_agent" ' „$Anforderungszeit $Upstream_Antwortzeit $Pipe“; Zugriffsprotokoll /dev/stdout zeitkombiniert; Server { hören Sie 80; Server-Tokens aus; # Deaktivieren Sie alle Begrenzungen, um HTTP 413 beim Hochladen großer Bilder zu vermeiden Client_max_Körpergröße 0; Standort / { Proxy-Passwort http://ui/; Proxy_Set_Header Host $host; Proxy_Set_Header X-Real-IP $Remote_Addr; proxy_set_header X-Weitergeleitet-Für $proxy_add_x_forwarded_for; # Wenn Sie Harbor hinter einem anderen Proxy einrichten, z. B. einer Nginx-Instanz, entfernen Sie die folgende Zeile, wenn der Proxy bereits über ähnliche Einstellungen verfügt. Proxy_set_header X-Weitergeleitet-Proto $scheme; Proxy-Pufferung aus; Proxy_Request_Buffering aus; } Standort /v1/ { Rückgabe 404; } Standort /v2/ { Proxy-Passwort http://ui/registryproxy/v2/; Proxy_set_header Host $http_host; Proxy_Set_Header X-Real-IP $Remote_Addr; proxy_set_header X-Weitergeleitet-Für $proxy_add_x_forwarded_for; # Wenn Sie Harbor hinter einem anderen Proxy einrichten, z. B. einer Nginx-Instanz, entfernen Sie die folgende Zeile, wenn der Proxy bereits über ähnliche Einstellungen verfügt. Proxy_set_header X-Weitergeleitet-Proto $scheme; Proxy-Pufferung aus; Proxy_Request_Buffering aus; } Standort /Dienst/ { Proxy-Passwort http://ui/service/; Proxy_Set_Header Host $host; Proxy_Set_Header X-Real-IP $Remote_Addr; proxy_set_header X-Weitergeleitet-Für $proxy_add_x_forwarded_for; # Wenn Sie Harbor hinter einem anderen Proxy einrichten, z. B. einer Nginx-Instanz, entfernen Sie die folgende Zeile, wenn der Proxy bereits über ähnliche Einstellungen verfügt. Proxy_set_header X-Weitergeleitet-Proto $scheme; Proxy-Pufferung aus; Proxy_Request_Buffering aus; } Standort /Dienst/Benachrichtigungen { Rückgabe 404; } } } [root@liumiao-Hafen]# Datenbank Sie können sehen, dass MariaDB 10.2.14 verwendet wird und der Datenbankname von Harbor Registry lautet [root@liumiao-Hafen]# docker exec -it harbor-db sh sh-4.3#mysql -uroot -pliumiaopw Willkommen beim MariaDB-Monitor. Befehle enden mit ; oder \g. Ihre MariaDB-Verbindungs-ID ist 21 Serverversion: 10.2.14-MariaDB Quellverteilung Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab und andere. Geben Sie „help;“ oder „\h“ ein, um Hilfe zu erhalten. Geben Sie „\c“ ein, um die aktuelle Eingabeanweisung zu löschen. MariaDB [(keine)]> Datenbanken anzeigen; +--------------------+ | Datenbank | +--------------------+ | Informationsschema | |mysql | | Leistungsschema | | Registrierung | +--------------------+ 4 Zeilen im Satz (0,00 Sek.) MariaDB [(keine)]> Nachdem Sie die Informationen der Datenbanktabelle bestätigt haben, können Sie sehen, dass die Datenbank in der aktuellen Version dieses Verwendungsmodus etwa 20 Tabellen enthält. MariaDB [(keine)]> Registrierung verwenden; Einlesen von Tabelleninformationen zur Vervollständigung von Tabellen- und Spaltennamen Sie können diese Funktion deaktivieren, um einen schnelleren Start mit -A zu erhalten Datenbank geändert MariaDB [Registrierung]> Tabellen anzeigen; +-------------------------------+ | Tabellen_in_Registrierung | +-------------------------------+ | Zugang | | Zugriffsprotokoll | | alembic_version | |clair_vuln_Zeitstempel| |Hafenbezeichnung| | Hafenressourcenbezeichnung | | img_scan_job | | img_scan_übersicht | | Projekt | | Projektmitglied | | Projektmetadaten | | Eigenschaften | | sofortiger_Replikationstrigger | | Replikationsjob | | Replikationsrichtlinie | | Replikationsziel | | Aufbewahrungsort | | Rolle | | Benutzer | | Benutzergruppe | +-------------------------------+ 20 Zeilen im Satz (0,00 Sek.) MariaDB [Registrierung]> Holzsammler Standardmäßig werden die Protokolle in Harbor in den folgenden Verzeichnissen gesammelt und verwaltet [root@liumiao Hafen]# ls /var/log/hafen adminserver.log jobservice.log mysql.log proxy.log redis.log registry.log ui.log [root@liumiao-Hafen]# docker-compose.yml [root@liumiao-Hafen]# cat docker-compose.yml Version: '2' Leistungen: Protokoll: Bild: vmware/harbour-log:v1.5.2 Containername: Hafenprotokoll Neustart: immer Bände: – /var/log/hafen/:/var/log/docker/:z - ./common/config/log/:/etc/logrotate.d/:z Häfen: 127.0.0.1:1514:10514 Netzwerke: -Hafen Registrierung: Bild: vmware/registry-photon:v2.6.2-v1.5.2 Containername: Registrierung Neustart: immer Bände: – /data/registry:/storage:z - ./common/config/registry/:/etc/registry/:z Netzwerke: -Hafen Umfeld: -GODEBUG=netdns=cgo Befehl: ["dienen", "/etc/registry/config.yml"] hängt ab von: -Protokoll Protokollierung: Treiber: "syslog" Optionen: Syslog-Adresse: "tcp://127.0.0.1:1514" Schlagwort: "Registrierung" MySQL: Bild: vmware/harbour-db:v1.5.2 Containername: Harbor-DB Neustart: immer Bände: - /data/database:/var/lib/mysql:z Netzwerke: -Hafen Umgebungsdatei: - ./common/config/db/env hängt ab von: -Protokoll Protokollierung: Treiber: "syslog" Optionen: Syslog-Adresse: "tcp://127.0.0.1:1514" Schlagwort: "mysql" Adminserver: Bild: vmware/harbor-adminserver:v1.5.2 Containername: Harbor-Adminserver Umgebungsdatei: - ./common/config/adminserver/env Neustart: immer Bände: - /data/config/:/etc/adminserver/config/:z - /data/geheimerSchlüssel:/etc/adminserver/Schlüssel:z – /data/:/data/:z Netzwerke: -Hafen hängt ab von: -Protokoll Protokollierung: Treiber: "syslog" Optionen: Syslog-Adresse: "tcp://127.0.0.1:1514" Schlagwort: "Adminserver" Benutzeroberfläche: Bild: vmware/harbour-ui:v1.5.2 Containername: Harbor-UI Umgebungsdatei: - ./common/config/ui/env Neustart: immer Bände: - ./common/config/ui/app.conf:/etc/ui/app.conf:z - ./common/config/ui/private_key.pem:/etc/ui/private_key.pem:z - ./common/config/ui/certificates/:/etc/ui/certificates/:z - /data/geheimerSchlüssel:/etc/ui/Schlüssel:z – /data/ca_download/:/etc/ui/ca/:z - /data/psc/:/etc/ui/token/:z Netzwerke: -Hafen hängt ab von: -Protokoll -adminserver - Registrierung Protokollierung: Treiber: "syslog" Optionen: Syslog-Adresse: "tcp://127.0.0.1:1514" Schlagwort: "ui" Jobservice: Bild: vmware/harbour-jobservice:v1.5.2 Containername: Hafen-Jobservice Umgebungsdatei: - ./common/config/jobservice/env Neustart: immer Bände: - /data/job_logs:/var/log/jobs:z - ./common/config/jobservice/config.yml:/etc/jobservice/config.yml:z Netzwerke: -Hafen hängt ab von: - Redis - Benutzeroberfläche -adminserver Protokollierung: Treiber: "syslog" Optionen: Syslog-Adresse: "tcp://127.0.0.1:1514" Schlagwort: "Jobservice" Redis: Bild: vmware/redis-photon:v1.5.2 Containername: Redis Neustart: immer Bände: – /Daten/Redis:/Daten Netzwerke: -Hafen hängt ab von: -Protokoll Protokollierung: Treiber: "syslog" Optionen: Syslog-Adresse: "tcp://127.0.0.1:1514" Schlagwort: "redis" Proxy: Bild: vmware/nginx-photon:v1.5.2 Containername: nginx Neustart: immer Bände: - ./common/config/nginx:/etc/nginx:z Netzwerke: -Hafen Häfen: - 80:80 -443:443 -4443:4443 hängt ab von: -mysql - Registrierung - Benutzeroberfläche -Protokoll Protokollierung: Treiber: "syslog" Optionen: Syslog-Adresse: "tcp://127.0.0.1:1514" Schlagwort: "Proxy" Netzwerke: Hafen: extern: false [root@liumiao-Hafen]# Hinweis: Benutzerdefinierte Portnummer Im Beispiel des vorherigen Artikels verwenden wir den Standardport 80 als Hafenport. Wenn Sie ihn ändern möchten (z. B. auf 8848), befolgen Sie die nachstehenden Schritte, um ihn zu ändern. Inhalt festlegen Sie können die detaillierten Informationen zu den Harbor-Einstellungselementen überprüfen, indem Sie die Datenbankeigenschaften oder API/Systeminfo anzeigen. Eigenschaften [root@liumiao-Hafen]# docker exec -it harbor-db sh sh-4.3#mysql -uroot -pliumiaopw Willkommen beim MariaDB-Monitor. Befehle enden mit ; oder \g. Ihre MariaDB-Verbindungs-ID lautet 153 Serverversion: 10.2.14-MariaDB Quellverteilung Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab und andere. Geben Sie „help;“ oder „\h“ ein, um Hilfe zu erhalten. Geben Sie „\c“ ein, um die aktuelle Eingabeanweisung zu löschen. MariaDB [(keine)]> Registrierung verwenden Einlesen von Tabelleninformationen zur Vervollständigung von Tabellen- und Spaltennamen Sie können diese Funktion deaktivieren, um einen schnelleren Start mit -A zu erhalten Datenbank geändert MariaDB [Registrierung]> Wählen Sie * aus den Eigenschaften aus; +----+--------------------------------+------------------------------------------+ | Ich würde | k | v | +----+--------------------------------+------------------------------------------+ | 1 | cfg_expiration | 5 | | 2 | Projekterstellungsbeschränkung | jeder | | 3 | uaa_client_secret | <enc-v1>cBvRPcG+p3oNVnJh8VM+SjvlcEsKYg== | | 4 | clair_db_host | postgres | | 5 | Token-Service-URL | http://ui:8080/service/token | | 6 | mysql_password | <enc-v1>HDqd+PbHcG9EWK9DF3RzM43fTtPvCjdvyQ== | | 7 | uaa_endpoint | uaa.meinedomain.org | | 8 | maximale Anzahl an Arbeitsstellen | 50 | | 9 | SQLite-Datei | | | 10 | E-Mail-Absender | admin <beispieladmin@meineDomäne.com> | | 11 | ldap_base_dn | ou=Personen,dc=meineDomäne,dc=com | | 12 | clair_db_port | 5432 | | 13 | MySQL-Port | 3306 | | 14 | ldap_search_dn | | | 15 | clair_db_Benutzername | postgres | | 16 | E-Mail_unsicher | falsch | | 17 | Datenbanktyp | MySQL | | 18 | ldap_filter | | | 19 | mit_Notar | falsch | | 20 | Admin-Initialpasswort | <enc-v1>4ZEvd/GfBYSdF9I6PfeI/XIvfGhPITaD3w== | | 21 | Notar-URL | http://Notar-Server:4443 | | 22 | Auth-Modus | db_auth | | 23 | ldap_group_search_scope | 2 | | 24 | ldap_uid | Benutzerkennung | | 25 | E-Mail-Benutzername | Beispieladmin@meineDomäne.com | | 26 | MySQL-Datenbank | Registrierung | | 27 | Schlüssel neu laden | | | 28 | clair_url | http://clair:6060 | | 29 | ldap_group_search_filter | Objektklasse=Gruppe | | 30 | E-Mail-Passwort | <enc-v1>h18ptbUM5oJwtKOzjJ4X5LOiPw== | | 31 | email_ssl | falsch | | 32 | ldap_timeout | 5 | | 33 | uaa_client_id | Ich nenne | | 34 | Name des Registrierungsspeicheranbieters | Dateisystem | | 35 | Selbstregistrierung | wahr | | 36 | E-Mail-Port | 25 | | 37 | ui_url | http://ui:8080 | | 38 | Tokenablauf | 30 | | 39 | E-Mail-Identität | | | 40 | clair_db | postgres | | 41 | uaa_verify_cert | wahr | | 42 | ldap_verify_cert | wahr | | 43 | LDAP-Gruppenattributname | cn | | 44 | mysql_host | mysql | | 45 | schreibgeschützt | falsch | | 46 | ldap_url | ldaps://ldap.meinedomain.com | | 47 | ext_endpoint | http://192.168.163.128 | | 48 | ldap_group_base_dn | ou=Gruppe,dc=meineDomäne,dc=com | | 49 | mit_clair | falsch | | 50 | admiral_url | N/A | | 51 | ldap_scope | 2 | | 52 | Registrierungs-URL | http://registry:5000 | | 53 | jobservice_url | http://jobservice:8080 | | 54 | E-Mail-Host | smtp.meineDomäne.com | | 55 | ldap_search_password | <enc-v1>F2QZkeEPTQPsJ9KNsBWcXA== | | 56 | mysql_benutzername | root | | 57 | clair_db_password | <enc-v1>IGBg3NxvT7qCYGIB+zizax+GojoM7ao2VQ== | +----+--------------------------------+------------------------------------------+ 57 Zeilen im Satz (0,00 Sek.) MariaDB [Registrierung]> api/systeminfo [root@liumiao-Hafen]# curl http://localhost/api/systeminfo { "mit_notar": falsch, "with_clair": falsch, "with_admiral": falsch, "admiral_endpoint": "Nicht zutreffend", "auth_mode": "db_auth", "registry_url": "192.168.163.128", "project_creation_restriction": "jeder", "Selbstregistrierung": wahr, "has_ca_root": falsch, "harbor_version": "v1.5.2-8e61deae", "next_scan_all": 0, "registry_storage_provider_name": "Dateisystem", "schreibgeschützt": false }[root@liumiao-Hafen]# Zusammenfassen Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, dass der Inhalt dieses Artikels einen gewissen Lernwert für Ihr Studium oder Ihre Arbeit hat. Vielen Dank für Ihre Unterstützung von 123WORDPRESS.COM. Wenn Sie mehr darüber erfahren möchten, schauen Sie sich bitte die folgenden Links an Das könnte Sie auch interessieren:
|
>>: Beispielcode zur Implementierung der Menüberechtigungssteuerung in Vue
Inhaltsverzeichnis Definition Die Rolle des Curso...
Zusammengeklappte Kopfzeilen sind eine großartige...
Es gibt ein solches Szenario: ein kreisförmiger C...
Inhaltsverzeichnis Drei Schritte zum Betrieb der ...
Hintergrund Da die Anzahl der Anwendungssysteme w...
1. Erstellen Sie eine Planungsaufgabe Anweisung c...
1. Docker zieht das Image Docker Pull MySQL (stan...
Die Lösung für das Problem mit der transparenten S...
Bei diesem Thema handelt es sich um einen interne...
1. Was ist mycat Ein vollständig Open Source-Groß...
Vorwort Jede gute Angewohnheit ist ein Schatz. Di...
1. Flex ist die Abkürzung für Flexible Box, was „...
Inhaltsverzeichnis Vorwort Stillader CSS-Lader Sa...
Einführung Beschreibt die Anwendungsfälle und Lös...
Führen Sie zuerst den Befehl aus: [root@mini61 se...