Harbor ist ein Registry-Server auf Unternehmensebene zum Speichern und Verteilen von Docker-Images. Er kann zum Aufbau eines unternehmensweiten Docker-Image-Repositorys verwendet werden. Basierend auf der Open-Source-Projektverteilung von Docker fügt es einige von Unternehmen benötigte Funktionsmerkmale hinzu, wie etwa die Replikation von Bildsynchronisierungen, das Scannen von Schwachstellen und die Berechtigungsverwaltung. Harbor ist ein von VMware als Open Source bereitgestelltes Docker Registry-Verwaltungsprojekt auf Unternehmensebene. Es umfasst Funktionen wie Berechtigungsverwaltung (RBAC), LDAP, Protokollprüfung, Verwaltungsschnittstelle, Selbstregistrierung, Bildreplikation und chinesische Unterstützung. Erstellen Sie ein voll funktionsfähiges Repository, das anonyme Pulls unterstützt [root@server1 mnt]# cd komponieren/ [root@server1 verfassen]# ls docker-compose-Linux-x86_64-1.16.1 docker-compose-Linux-x86_64-1.24.1 docker-compose-Linux-x86_64-1.22.0 docker-compose-Linux-x86_64-1.27.0 [root@server1 komponieren]# mv docker-compose-Linux-x86_64-1.27.0 /usr/local/bin/docker-compose [root@server1 verfassen]# chmod +x /usr/local/bin/docker-compose [root@server1 mnt]# tar zxf harbor-offline-installer-v1.10.1.tgz Abhängigkeiten auflösen und Harbor entpacken vim harbor.yml Im Hafenverzeichnis Der Speicherort der Authentifizierung und des Schlüssels muss korrekt geschrieben werden ./install.sh Skriptinstallation ausführen Redis erstellen ... fertig Erstellen von Harbour-Core ... fertig Nginx erstellen ... fertig Erstellen von harbour-jobservice ... fertig ✔ ----Harbor wurde erfolgreich installiert und gestartet.---- Erledigt [root@server1 hafen]# docker-compose Der Befehl docker-compose muss im Verzeichnis harbor ausgeführt werden [root@server1 hafen]# docker-compose start [root@server1 Hafen]# docker-compose ps Name Befehl Status Ports -------------------------------------------------------------------------------------------------------------------------------------------- harbor-core /harbor/harbor_core Aktiv (fehlerhaft) harbor-db /docker-entrypoint.sh Aktiv (fehlerfrei) 5432/tcp harbor-jobservice /harbor/harbor_jobservice ... Up (fehlerhaft) harbor-log /bin/sh -c /usr/local/bin/ ... Aktiv (fehlerhaft) 127.0.0.1:1514->10514/tcp Harbor-Portal nginx -g Daemon aus; Aktiv (fehlerhaft) 8080/tcp nginx nginx -g Daemon aus; Aktiv (fehlerfrei) 0.0.0.0:80->8080/tcp,:::80->8080/tcp, 0.0.0.0:443->8443/tcp,:::443->8443/tcp redis redis-server /etc/redis.conf Aktiv (fehlerfrei) 6379/tcp Registrierung /home/harbor/entrypoint.sh Aktiv (fehlerhaft) 5000/tcp registryctl /home/harbor/start.sh Aktiv (fehlerfrei) Stellen Sie sicher, dass die Spiegel aktiv sind und geben Sie die IP-Adresse direkt im Browser ein Benutzer admin, Passwort yume [root@server1 docker]# docker logout reg.westos.org Entfernen der Anmeldeinformationen für reg.westos.org [root@server1 docker]# docker login reg.westos.org Benutzername: admin Passwort: WARNUNG! Ihr Passwort wird unverschlüsselt in /root/.docker/config.json gespeichert. Konfigurieren Sie einen Credential Helper, um diese Warnung zu entfernen. Siehe https://docs.docker.com/engine/reference/commandline/login/#credentials-store Anmeldung erfolgreich Melden Sie sich von der vorherigen Anmeldung ab und erneut an. Dies sind die in der Datenbank gespeicherten Informationen. [root@server1 docker]# docker tag yakexi007/game2048:latest reg.westos.org/library/game2048:latest [root@server1 docker]# docker push reg.westos.org/library/game2048:latest Der Push bezieht sich auf das Repository [reg.westos.org/library/game2048] 88fca8ae768a: Geschoben 6d7504772167: Geschoben 192e9fad2abc: Geschoben 36e9226e74f8: Geschoben 011b303988d2: Gedrückt zuletzt: Digest: sha256:8a34fb9cb168c420604b6e5d32ca6d412cb0d533a826b313b190535c03fe9390 Größe: 1364 Ins Lager hochladen und ansehen [root@server2 docker]# cat daemon.json { "Registrierungsspiegel": ["https://reg.westos.org"] } Im Server2 wurde auf das private Lager verwiesen Registrierung: https://index.docker.io/v1/ Beschriftungen: Experimentell: falsch Unsichere Register: 127.0.0.0/8 Registrierungsspiegel: https://reg.westos.org/ Live-Wiederherstellung aktiviert: false Und es ist effektiv, die Adressauflösung in Server2 durchzuführen [root@server2 docker]# docker pull reg.westos.org/library/game2048:latest aktuell: Aus Bibliothek/Game2048 ziehen 534e72e7cedc: Ziehen abgeschlossen f62e2f6dfeef: Ziehen abgeschlossen fe7db6293242: Ziehen abgeschlossen 3f120f6a2bf8: Ziehen abgeschlossen 4ba4e6930ea5: Ziehen abgeschlossen Digest: sha256:8a34fb9cb168c420604b6e5d32ca6d412cb0d533a826b313b190535c03fe9390 Status: Neueres Image für reg.westos.org/library/game2048:latest heruntergeladen reg.westos.org/library/game2048:latest Das von Server1 gepushte Bild wurde erfolgreich auf Server2 heruntergeladen Aus dem Protokoll ist ersichtlich, dass anonyme Benutzer [root@server1 docker]# docker tag yakexi007/nginx:latest reg.westos.org/library/nginx:latest [root@server1 docker]# docker push reg.westos.org/library/nginx Der Push bezieht sich auf das Repository [reg.westos.org/library/nginx] 3bd8699f28ba: Geschoben 1d3b68b6972f: Geschoben de1602ca36c9: Geschoben zuletzt: Digest: sha256:5ea5a786e978abd8e6e0b6c0f37f7271be19c40d6b8247b1d9dae70c1fbab9eb Größe: 949 Laden Sie erneut ein Nginx-Image auf Server1 hoch. Sie können sehen [root@server2 docker]# docker pull nginx Standard-Tag verwenden: latest aktuellste: Aus Bibliothek/nginx ziehen cfb92865f5ba: Ziehen abgeschlossen 8dd350b5e0d5: Ziehen abgeschlossen 15157df2751c: Ziehen abgeschlossen Zusammenfassung: sha256:5ea5a786e978abd8e6e0b6c0f37f7271be19c40d6b8247b1d9dae70c1fbab9eb Status: Neueres Image für nginx:latest heruntergeladen docker.io/library/nginx:latest Server2 zieht nginx erneut, fertig [root@server1-Hafen]# Docker-Compose-Protokolle Protokolle anzeigen [root@server1 hafen]# docker-compose stop Ein Lager deaktivieren [root@server1 Hafen]# docker-compose rm Löschen Sie alle Container. Fügen Sie als Nächstes die Harbor-Funktion hinzu. Lesen Sie die Hilfe des Installationsskripts. Sie können drei Module sehen: Image Vulnerability Scanning, Content Trust und Remote Login. Fügen Sie den Modulnamen nach dem Installationsskript hinzu. Nach der Neuinstallation werden diese Modulfunktionen aktiviert. [root@server1 hafen]# ./install.sh --help Hinweis: Bitte legen Sie zuerst den Hostnamen und andere notwendige Attribute in harbor.yml fest. Verwenden Sie NICHT localhost oder 127.0.0.1 als Hostnamen, da Harbor von externen Clients aufgerufen werden muss. Bitte setzen Sie --with-notary, wenn Notary in Harbor aktiviert werden muss, und setzen Sie ui_url_protocol/ssl_cert/ssl_cert_key in harbor.yml, da Notary unter https ausgeführt werden muss. Bitte setzen Sie --with-clair, falls Clair in Harbor aktiviert werden muss Bitte setzen Sie --with-chartmuseum, wenn Chartmuseum in Harbor aktiviert werden muss [root@server1 hafen]# ./install.sh --with-notary --with-clair --with-chartmuseum [Schritt 5]: Harbor starten ... Erstellen des Netzwerks „harbor_harbor-clair“ mit dem Standardtreiber Erstellen des Netzwerks „harbor_harbor-notary“ mit dem Standardtreiber Netzwerk „harbor_harbor-chartmuseum“ mit dem Standardtreiber erstellen Netzwerk „harbor_notary-sig“ mit dem Standardtreiber erstellen Hafenlog erstellen ... fertig Registrierung erstellen ... fertig Harbor-DB wird erstellt ... fertig Registryctl erstellen ... fertig Redis erstellen ... fertig Chartmuseum erstellen ... fertig Hafenportal erstellen ... fertig Erstellen von Harbour-Core ... fertig Notar-Unterzeichner erstellen ... fertig Erstellen von Clair ... fertig Clair-Adapter erstellen ... fertig Notar-Server erstellen ... fertig Nginx erstellen ... fertig Erstellen von harbour-jobservice ... fertig ✔ ----Harbor wurde erfolgreich installiert und gestartet.---- [root@server1 Hafen]# docker-compose ps Name Befehl Status Ports -------------------------------------------------------------------------------------------------------------------------------------------- chartmuseum ./docker-entrypoint.sh Up (Gesundheit: wird gestartet) 9999/tcp clair ./docker-entrypoint.sh Up (Gesundheit: wird gestartet) 6060/tcp, 6061/tcp clair-adapter /clair-adapter/clair-adapter Up (Gesundheit: wird gestartet) 8080/tcp harbor-core /harbor/harbor_core Up (Gesundheit: wird gestartet) harbor-db /docker-entrypoint.sh Aktiv (Gesundheit: wird gestartet) 5432/tcp harbor-jobservice /harbor/harbor_jobservice ... Up (Gesundheit: wird gestartet) harbor-log /bin/sh -c /usr/local/bin/ ... Up (Gesundheit: wird gestartet) 127.0.0.1:1514->10514/tcp Harbor-Portal nginx -g Daemon aus; Aktiv (Gesundheit: wird gestartet) 8080/TCP nginx nginx -g Daemon aus; Aktiv (Gesundheit: wird gestartet) 0.0.0.0:4443->4443/tcp,:::4443->4443/tcp, 0.0.0.0:80->8080/tcp,:::80->8080/tcp, 0.0.0.0:443->8443/tcp,:::443->8443/tcp notary-server /bin/sh -c migrate-patch - ... Nach oben notary-signer /bin/sh -c migrate-patch - ... Nach oben redis redis-server /etc/redis.conf Aktiv (Gesundheit: wird gestartet) 6379/tcp Registrierung /home/harbor/entrypoint.sh Aktiv (Gesundheit: wird gestartet) 5000/tcp registryctl /home/harbor/start.sh Up (Gesundheit: wird gestartet) Benutzen Sie ps zur Überprüfung und Sie werden einige weitere Funktionen finden, um sich bei 172.25.250.11 anzumelden Diese waren vor der Neuinstallation nicht vorhanden. --mit-Notar --mit-Clair --mit-Chartmuseum Wie scanne ich Bilder automatisch? Wählen Sie „Zum Speichern daran denken und es erneut versuchen“ und laden Sie ein Bild erneut hoch. [root@server1 harbor]# Docker-Tag rhel7:latest reg.westos.org/library/rhel7:latest Verwenden Sie dieses Mal das Rhel7-Image und ändern Sie zuerst den Namen. [root@server1 Hafen]# docker push reg.westos.org/library/rhel7:latest Der Push bezieht sich auf das Repository [reg.westos.org/library/rhel7] 18af9eb19b5f: Geschoben zuletzt: Digest: sha256:58cd9120a4194edb0de4377b71bd564953255a1422baa1bbd9cb23d521c6873b Größe: 528 Zum Hafen hochladen Als ich den Browser öffnete, stellte ich fest, dass er automatisch gescannt wurde. Wie implementiere ich die Bildsignierfunktion? Wenn Content Trust ausgewählt ist, versuchen Sie, das gerade hochgeladene Rhel7-Image auf Server2 abzurufen. [root@server2 ~]# docker pull rhel7 Standard-Tag verwenden: latest Fehlerantwort vom Daemon: Pull-Zugriff für Rhel7 verweigert, Repository existiert nicht oder erfordert möglicherweise „Docker-Login“: verweigert: angeforderter Zugriff auf die Ressource wurde verweigert Wenn Sie Content Trust deaktivieren, können Sie normal abrufen, da Content Trust im Repository aktiviert ist. Der Client kann nur signierte Images herunterladen, aber das Debian-Image im Repository ist nicht signiert. Daher schlägt das Abrufen durch den Client fehl. Jetzt müssen wir die Signatur des vertrauenswürdigen Images autorisieren. Löschen Sie zunächst das zuvor hochgeladene Image in der Weboberfläche. Legen Sie für das Image ohne Signatur zwei Umgebungsvariablen auf dem Docker-Server fest. Anschließend können wir die Content Trust-Funktion verwenden, um das hochgeladene Image zu signieren. [root@server1 Hafen]# docker-compose ps Name Befehl Status Ports -------------------------------------------------------------------------------------------------------------------------------------------- chartmuseum ./docker-entrypoint.sh Aktiv (fehlerfrei) 9999/tcp clair ./docker-entrypoint.sh Aktiv (fehlerhaft) 6060/tcp, 6061/tcp clair-adapter /clair-adapter/clair-adapter Aktiv (fehlerhaft) 8080/tcp harbor-core /harbor/harbor_core Aktiv (fehlerhaft) harbor-db /docker-entrypoint.sh Aktiv (fehlerfrei) 5432/tcp harbor-jobservice /harbor/harbor_jobservice ... Up (gesund) harbor-log /bin/sh -c /usr/local/bin/ ... Aktiv (fehlerhaft) 127.0.0.1:1514->10514/tcp Harbor-Portal nginx -g Daemon aus; Aktiv (fehlerhaft) 8080/tcp nginx nginx -g Daemon aus; Aktiv (fehlerfrei) 0.0.0.0:4443->4443/tcp,:::4443->4443/tcp, 0.0.0.0:80->8080/tcp,:::80->8080/tcp, 0.0.0.0:443->8443/tcp,:::443->8443/tcp notary-server /bin/sh -c migrate-patch - ... Nach oben notary-signer /bin/sh -c migrate-patch - ... Nach oben redis redis-server /etc/redis.conf Aktiv (fehlerfrei) 6379/tcp Registrierung /home/harbor/entrypoint.sh Aktiv (fehlerhaft) 5000/tcp registryctl /home/harbor/start.sh Aktiv (fehlerfrei) Port 4443 wird zum Signieren verwendet [root@server1 hafen]# export DOCKER_CONTENT_TRUST=1 [root@server1 Hafen]# export DOCKER_CONTENT_TRUST_SERVER=https://reg.westos.org:4443 (2) Docker Content Trust aktivieren [root@server1 Hafen]# docker push reg.westos.org/library/nginx:latest Der Push bezieht sich auf das Repository [reg.westos.org/library/nginx] 3bd8699f28ba: Ebene existiert bereits 1d3b68b6972f: Ebene existiert bereits de1602ca36c9: Ebene existiert bereits zuletzt: Digest: sha256:5ea5a786e978abd8e6e0b6c0f37f7271be19c40d6b8247b1d9dae70c1fbab9eb Größe: 949 Signieren und Übertragen von Vertrauensmetadaten Fehler: Fehler beim Kontaktieren des Notarservers: x509: Zertifikat von unbekannter Behörde signiert Es muss „Latest“ hinzugefügt werden, was auf eine aktualisierte Version hinweist. (3) Beim erneuten Hochladen ist ein Fehler aufgetreten. Im versteckten Verzeichnis .docker befindet sich kein Zertifikat. Erstellen Sie ein Zertifikatverzeichnis tls. Erstellen Sie nach dem Aufrufen des Verzeichnisses ein Verzeichnis mit demselben Namen wie der Container, reg.westos.org:4443. [root@server1 ~]# cd .docker/ [root@server1 .docker]# ls config.json Vertrauen [root@server1 .docker]# mkdir tls [root@server1 .docker]# cd tls/ [root@server1 tls]# mkdir reg.westos.org:4443 [root@server1 tls]# cd reg.westos.org\:4443/ [root@server1 reg.westos.org:4443]# cp /docker / .autorelabel Daten/ etc/ lib64/ opt/ run/ sys/ var/ bin/ dev/ home/ media/ proc/ sbin/ tmp/ boot/ docker lib/ mnt/ root/ srv/ usr/ [root@server1 reg.westos.org:4443]# cp /root/data/certs/westos.org.crt ca.crt [root@server1 reg.westos.org:4443]# ls ca.crt (4) Versuchen Sie den Upload erneut [root@server1 Hafen]# docker push reg.westos.org/library/nginx:latest Der Push bezieht sich auf das Repository [reg.westos.org/library/nginx] 3bd8699f28ba: Ebene existiert bereits 1d3b68b6972f: Ebene existiert bereits de1602ca36c9: Ebene existiert bereits zuletzt: Digest: sha256:5ea5a786e978abd8e6e0b6c0f37f7271be19c40d6b8247b1d9dae70c1fbab9eb Größe: 949 Signieren und Übertragen von Vertrauensmetadaten Sie sind dabei, eine neue Passphrase für den Root-Signaturschlüssel zu erstellen. Diese Passphrase wird verwendet, um den sensibelsten Schlüssel in Ihrem Signatursystem zu schützen. Bitte Wählen Sie eine lange, komplexe Passphrase und achten Sie darauf, das Passwort und die Die Schlüsseldatei selbst ist sicher und gesichert. Es wird dringend empfohlen, dass Sie eine Passwort-Manager, um die Passphrase zu generieren und sicher aufzubewahren. Es wird keine Möglichkeit, diesen Schlüssel wiederherzustellen. Sie finden den Schlüssel in Ihrem Konfigurationsverzeichnis. Geben Sie die Passphrase für den neuen Root-Schlüssel mit der ID dbac0cb ein: Die Passphrase ist zu kurz. Verwenden Sie bitte einen Passwort-Manager, um eine gute, zufällige Passphrase zu generieren und zu speichern. Geben Sie die Passphrase für den neuen Root-Schlüssel mit der ID dbac0cb ein: Die Passphrase ist zu kurz. Verwenden Sie bitte einen Passwort-Manager, um eine gute, zufällige Passphrase zu generieren und zu speichern. Geben Sie die Passphrase für den neuen Root-Schlüssel mit der ID dbac0cb ein: Die Passphrase ist zu kurz. Verwenden Sie bitte einen Passwort-Manager, um eine gute, zufällige Passphrase zu generieren und zu speichern. Geben Sie die Passphrase für den neuen Root-Schlüssel mit der ID dbac0cb ein: Die Passphrase ist zu kurz. Verwenden Sie bitte einen Passwort-Manager, um eine gute, zufällige Passphrase zu generieren und zu speichern. Geben Sie die Passphrase für den neuen Root-Schlüssel mit der ID dbac0cb ein: Wiederholen Sie die Passphrase für den neuen Root-Schlüssel mit der ID dbac0cb: Geben Sie die Passphrase für den neuen Repository-Schlüssel mit der ID a868e96 ein: Wiederholen Sie die Passphrase für den neuen Repository-Schlüssel mit der ID a868e96: Initialisierung von „reg.westos.org/library/nginx“ abgeschlossen Erfolgreich signiert reg.westos.org/library/nginx:latest Nach der Lösung des Problems lädt der Server das Bild erneut hoch. Um ein neues Bild erfolgreich hochzuladen, muss der Administrator den Stammschlüssel und den Lagerschlüssel festlegen. Unterzeichnet, muss neuestes hinzufügen [root@server2 ~]# docker pull nginx Standard-Tag verwenden: latest aktuellste: Aus Bibliothek/nginx ziehen cfb92865f5ba: Ziehen abgeschlossen 8dd350b5e0d5: Ziehen abgeschlossen 15157df2751c: Ziehen abgeschlossen Zusammenfassung: sha256:5ea5a786e978abd8e6e0b6c0f37f7271be19c40d6b8247b1d9dae70c1fbab9eb Status: Neueres Image für nginx:latest heruntergeladen docker.io/library/nginx:latest Das Herunterladen des signierten Images auf Server2 ist problemlos möglich. Wenn es nicht signiert ist und Content Trust aktiviert ist, funktioniert es trotzdem nicht. Versuchen Sie es noch einmal, löschen Sie zuerst 2048 aus dem Hafen, löschen Sie dann das zuvor heruntergeladene 2048-Image auf Server2 und laden Sie es erneut herunter. Es wird ein Fehler gemeldet. [root@server2 ~]# docker pull game2048 Standard-Tag verwenden: latest Fehlerantwort vom Daemon: Pull-Zugriff für game2048 verweigert, Repository existiert nicht oder erfordert möglicherweise „Docker-Login“: verweigert: angeforderter Zugriff auf die Ressource wurde verweigert Dann pusht server1 wieder 2048 [root@server1 Hafen]# docker push reg.westos.org/library/game2048:latest Der Push bezieht sich auf das Repository [reg.westos.org/library/game2048] 88fca8ae768a: Ebene existiert bereits 6d7504772167: Ebene existiert bereits 192e9fad2abc: Ebene existiert bereits 36e9226e74f8: Ebene existiert bereits 011b303988d2: Ebene existiert bereits zuletzt: Digest: sha256:8a34fb9cb168c420604b6e5d32ca6d412cb0d533a826b313b190535c03fe9390 Größe: 1364 Signieren und Übertragen von Vertrauensmetadaten Geben Sie die Passphrase für den Root-Schlüssel mit der ID dbac0cb ein: Geben Sie die Passphrase für den neuen Repository-Schlüssel mit der ID 18c8514 ein: Passphrase für neuen Repository-Schlüssel mit der ID 18c8514 wiederholen: Initialisierung von „reg.westos.org/library/game2048“ abgeschlossen Erfolgreich signiert reg.westos.org/library/game2048:latest Bereits signiert, Server2 zieht erneut [root@server2 ~]# docker pull game2048 Standard-Tag verwenden: latest aktuell: Aus Bibliothek/Game2048 ziehen 534e72e7cedc: Ziehen abgeschlossen f62e2f6dfeef: Ziehen abgeschlossen fe7db6293242: Ziehen abgeschlossen 3f120f6a2bf8: Ziehen abgeschlossen 4ba4e6930ea5: Ziehen abgeschlossen Digest: sha256:8a34fb9cb168c420604b6e5d32ca6d412cb0d533a826b313b190535c03fe9390 Status: Neueres Image für game2048:latest heruntergeladen docker.io/library/game2048:latest Erledigt 4. Gastbenutzer greifen auf nicht offengelegte Repositories zu [root@server1 hafen]# export DOCKER_CONTENT_TRUST=0 Deaktivieren Sie das Content Trust, sonst gibt es Ärger [root@server1 harbor]# Docker-Tag reg.westos.org/library/game2048:latest reg.westos.org/haoge/game2048:latest [root@server1-Hafen]# Docker Push reg.westos.org/haoge/game2048 Laden Sie ein 2048-Bild für das neue Projekt Haoge erneut hoch [root@server2 ~]# docker pull reg.westos.org/haoge/game2048:latest Fehlerantwort vom Daemon: Pull-Zugriff für reg.westos.org/haoge/game2048 verweigert, Repository existiert nicht oder erfordert möglicherweise „Docker-Login“: verweigert: angeforderter Zugriff auf die Ressource wurde verweigert Server2 zieht 2048 von haoge, meldet einen Fehler, muss sich anmelden Neuen Benutzer anlegen Geben Sie dem Benutzer wqh im haoge-Projekt eine Gastidentität [root@server2 ~]# Docker-Login reg.westos.org Benutzername: wqh Passwort: WARNUNG! Ihr Passwort wird unverschlüsselt in /root/.docker/config.json gespeichert. Konfigurieren Sie einen Credential Helper, um diese Warnung zu entfernen. Siehe https://docs.docker.com/engine/reference/commandline/login/#credentials-store Anmeldung erfolgreich server2-Anmeldung wqh [root@server2 ~]# docker pull reg.westos.org/haoge/game2048:latest aktuell: Abrufen von haoge/game2048 Digest: sha256:8a34fb9cb168c420604b6e5d32ca6d412cb0d533a826b313b190535c03fe9390 Status: Neueres Image für reg.westos.org/haoge/game2048:latest heruntergeladen reg.westos.org/haoge/game2048:latest [root@server2 ~]# Docker-Bilder REPOSITORY TAG BILD ID ERSTELLT GRÖSSE nginx latest 2560dbd4ee1e vor 14 Monaten 31,1 MB game2048 latest 19299002fdbe vor 4 Jahren 55.5MB reg.westos.org/haoge/game2048 latest 19299002fdbe vor 4 Jahren 55,5 MB Kein Problem, aber Push ist nicht zulässig, da Besucher keine Berechtigung haben. Das Protokoll zeigt, dass wqh gerade einen Spiegel gezogen hat und schließlich: [root@server1 hafen]# docker-compose stop Harbor-Jobservice wird gestoppt ... fertig Nginx wird gestoppt ... fertig Notarserver wird gestoppt ... fertig Clair-Adapter wird gestoppt ... fertig Notar-Unterzeichner stoppen ... erledigt Clair stoppen ... erledigt Harbor-Core wird gestoppt ... erledigt Chartmuseum wird gestoppt ... erledigt Hafenportal wird gestoppt ... erledigt Redis wird gestoppt ... fertig Registryctl wird gestoppt ... fertig Harbor-DB wird gestoppt ... fertig Registrierung wird gestoppt ... fertig Hafenprotokoll stoppen ... erledigt [root@server1 Hafen]# docker-compose rm Ich werde Harbor-Jobservice, Nginx, Notary-Server, Clair-Adapter, Notary-Signer, Clair, Harbor-Core, Chartmuseum, Harbor-Portal, Redis, Registryctl, Harbor-DB, Registry, Harbor-Log entfernen. Bist du sicher? [yN] y Harbor-Jobservice wird entfernt ... fertig Nginx wird entfernt ... fertig Notarserver wird entfernt ... fertig Clair-Adapter entfernen ... fertig Notarunterzeichner entfernen ... fertig Clair entfernen ... fertig Harbor-Core wird entfernt ... fertig Chartmuseum wird entfernt ... fertig Hafenportal entfernen ... fertig Redis wird entfernt ... fertig Registryctl wird entfernt ... fertig Harbor-DB wird entfernt ... fertig Registrierung entfernen ... fertig Hafenprotokoll entfernen ... fertig [root@server1 hafen]# ./install.sh --with-chartmuseum [Schritt 0]: Überprüfen, ob Docker installiert ist … Hinweis: Docker-Version: 19.03.15 [Schritt 1]: Überprüfen, ob Docker-Compose installiert ist … Hinweis: Docker-Compose-Version: 1.27.0 [Schritt 2]: Harbor-Bilder werden geladen ... Geladenes Bild: goharbor/clair-adapter-photon:v1.0.1-v1.10.1 Geladenes Bild: goharbor/harbor-jobservice:v1.10.1 Geladenes Bild: goharbor/redis-photon:v1.10.1 Geladenes Bild: goharbor/notary-server-photon:v0.6.1-v1.10.1 Geladenes Bild: goharbor/clair-photon:v2.1.1-v1.10.1 Geladenes Bild: goharbor/harbor-log:v1.10.1 Geladenes Bild: goharbor/registry-photon:v2.7.1-patch-2819-2553-v1.10.1 Geladenes Bild: goharbor/notary-signer-photon:v0.6.1-v1.10.1 Geladenes Bild: goharbor/chartmuseum-photon:v0.9.0-v1.10.1 Geladenes Bild: goharbor/harbor-registryctl:v1.10.1 Geladenes Bild: goharbor/nginx-photon:v1.10.1 Geladenes Bild: goharbor/harbor-migrator:v1.10.1 Geladenes Bild: goharbor/prepare:v1.10.1 Geladenes Bild: goharbor/harbor-portal:v1.10.1 Geladenes Bild: goharbor/harbor-core:v1.10.1 Geladenes Bild: goharbor/harbor-db:v1.10.1 [Schritt 3]: Umgebung vorbereiten ... [Schritt 4]: Hafenkonfigurationen vorbereiten ... Das Basisverzeichnis „prepare“ ist auf /mnt/harbour eingestellt. Löschen der Konfigurationsdatei: /config/log/logrotate.conf Löschen der Konfigurationsdatei: /config/log/rsyslog_docker.conf Löschen der Konfigurationsdatei: /config/nginx/conf.d/notary.upstream.conf Löschen der Konfigurationsdatei: /config/nginx/conf.d/notary.server.conf Löschen der Konfigurationsdatei: /config/nginx/nginx.conf Löschen der Konfigurationsdatei: /config/core/env Löschen der Konfigurationsdatei: /config/core/app.conf Löschen der Konfigurationsdatei: /config/registry/config.yml Löschen der Konfigurationsdatei: /config/registry/root.crt Löschen der Konfigurationsdatei: /config/registryctl/env Löschen der Konfigurationsdatei: /config/registryctl/config.yml Löschen der Konfigurationsdatei: /config/db/env Löschen der Konfigurationsdatei: /config/jobservice/env Löschen der Konfigurationsdatei: /config/jobservice/config.yml Löschen der Konfigurationsdatei: /config/notary/server-config.postgres.json Löschen der Konfigurationsdatei: /config/notary/server_env Löschen der Konfigurationsdatei: /config/notary/signer_env Löschen der Konfigurationsdatei: /config/notary/signer-config.postgres.json Löschen der Konfigurationsdatei: /config/notary/notary-signer.key Löschen der Konfigurationsdatei: /config/notary/notary-signer.crt Löschen der Konfigurationsdatei: /config/notary/notary-signer-ca.crt Löschen der Konfigurationsdatei: /config/notary/root.crt Löschen der Konfigurationsdatei: /config/clair/postgresql-init.d/README.md Löschen der Konfigurationsdatei: /config/clair/postgres_env Löschen der Konfigurationsdatei: /config/clair/config.yaml Löschen der Konfigurationsdatei: /config/clair/clair_env Löschen der Konfigurationsdatei: /config/clair-adapter/env Löschen der Konfigurationsdatei: /config/chartserver/env Generierte Konfigurationsdatei: /config/log/logrotate.conf Generierte Konfigurationsdatei: /config/log/rsyslog_docker.conf Generierte Konfigurationsdatei: /config/nginx/nginx.conf Generierte Konfigurationsdatei: /config/core/env Generierte Konfigurationsdatei: /config/core/app.conf Generierte Konfigurationsdatei: /config/registry/config.yml Generierte Konfigurationsdatei: /config/registryctl/env Generierte Konfigurationsdatei: /config/db/env Generierte Konfigurationsdatei: /config/jobservice/env Generierte Konfigurationsdatei: /config/jobservice/config.yml Geheimnis aus Datei geladen: /secret/keys/secretkey Generierte Konfigurationsdatei: /config/chartserver/env Generierte Konfigurationsdatei: /compose_location/docker-compose.yml Bereinigen Sie das Eingabeverzeichnis [Schritt 5]: Harbor starten ... Hafenlog erstellen ... fertig Hafenportal erstellen ... fertig Registryctl erstellen ... fertig Harbor-DB wird erstellt ... fertig Redis erstellen ... fertig Registrierung erstellen ... fertig Chartmuseum erstellen ... fertig Erstellen von Harbor-Core ... fertig Nginx erstellen ... fertig Erstellen von harbour-jobservice ... fertig ✔ ----Harbor wurde erfolgreich installiert und gestartet.---- [root@server1 Hafen]# docker-compose ps Name Befehl Status Ports -------------------------------------------------------------------------------------------------------------------------------------------- chartmuseum ./docker-entrypoint.sh Up (Gesundheit: wird gestartet) 9999/tcp harbor-core /harbor/harbor_core Up (Gesundheit: wird gestartet) harbor-db /docker-entrypoint.sh Aktiv (Gesundheit: wird gestartet) 5432/tcp harbor-jobservice /harbor/harbor_jobservice ... Up (Gesundheit: wird gestartet) harbor-log /bin/sh -c /usr/local/bin/ ... Up (Gesundheit: wird gestartet) 127.0.0.1:1514->10514/tcp Harbor-Portal nginx -g Daemon aus; Aktiv (Gesundheit: wird gestartet) 8080/TCP nginx nginx -g Daemon aus; Aktiv (Gesundheit: wird gestartet) 0.0.0.0:80->8080/tcp,:::80->8080/tcp, 0.0.0.0:443->8443/tcp,:::443->8443/tcp redis redis-server /etc/redis.conf Aktiv (Gesundheit: wird gestartet) 6379/tcp Registrierung /home/harbor/entrypoint.sh Aktiv (Gesundheit: wird gestartet) 5000/tcp registryctl /home/harbor/start.sh Up (Gesundheit: wird gestartet) Endergebnis Oben finden Sie den detaillierten Inhalt des voll funktionsfähigen Docker5-Harbors. Weitere Informationen zu Docker Harbor finden Sie in den anderen verwandten Artikeln auf 123WORDPRESS.COM! Das könnte Sie auch interessieren:
|
<<: Prinzip und Implementierung der parallelen Replikation von MySQL5.7
>>: Detaillierte Erläuterung verschiedener Methoden der Vue-Komponentenkommunikation
Inhaltsverzeichnis 1. Einleitung 2. Beschreibung ...
Inhaltsverzeichnis Vorwort 1. Endpunkt 2. Verbind...
„Replace“ und „Replace into“ von MySQL sind beide...
Ausgehend von diesem Artikel dient eine neue Arti...
Vorwort scp ist die Abkürzung für „Secure Copy“. ...
.NET SDK-Download-Link https://dotnet.microsoft.c...
lsof (List Open Files) ist ein Tool zum Anzeigen ...
Vue kapselt die Breadcrumb-Komponente zu Ihrer In...
Inhaltsverzeichnis 1. Umweltinstallation 2. Erste...
Hintergrund des Unfalls: Vor einigen Tagen habe i...
1. Überprüfen Sie den Zeichensatz des standardmäß...
Bei der Suchmaschinenoptimierung (SEO) sind viele ...
Dieser Abschnitt beginnt mit den Details der Text...
Inhaltsverzeichnis Fallstudie Kontostand aktualis...
pssh ist eine in Python implementierte Open-Sourc...