So installierst du Harbor Docker Image Registry unter Ubuntu 22.04

Harbor ist eine Open-Source-Docker-Image-Registry für Cloud-native Umgebungen. Als Image-Registry wird Harbor zum Speichern und Verteilen von Container-Images verwendet. Zur Sicherung der Artefakte bietet harbor Sicherheitsschutz durch Richtlinien, rollenbasierte Zugriffskontrolle für Benutzer, einen Sicherheitsscanner für Images, um sicherzustellen, dass diese frei von Schwachstellen sind, und eine Image-Signierung, die gewährleistet, dass die Benutzer Images aus der vertrauenswürdigen Registry ziehen.

Harbor ist ein CNCF-Absolventenprojekt und eine Image-Registry der Enterprise-Klasse. Es bietet Konformität und hohe Leistung, damit du Artefakte in Cloud-nativen Umgebungen wie Kubernetes und Docker konsistent und sicher verwalten kannst.

In dieser Anleitung zeige ich dir, wie du Harbor Image Registry mit Docker auf einem Ubuntu 22.04 Server installierst. Diese Anleitung umfasst die Installation von Docker CE, die grundlegende Installation von Harbor mit aktiviertem SSL und die grundlegende Nutzung und Verwaltung von Harbor als Image Registry.

Voraussetzungen

Um diesen Leitfaden durchzuarbeiten, brauchst du die folgenden Voraussetzungen:

  • Einen Ubuntu 22.04-Server – In diesem Beispiel wird der generische und frische Ubuntu-Server mit dem Hostnamen „harbor-server“ verwendet.
  • Einen Nicht-Root-Benutzer mit Root-/Administrator-Rechten.
  • Ein Domänenname oder eine lokale Domäne, die von harbor verwendet werden soll.

Installation von Docker CE (Community Edition)

Die harbor Image Registry bietet mehrere Versionen, die in verschiedenen Umgebungen installiert werden können. Du kannst harbor über das Helm-Diagramm in Kubernetes einsetzen oder harbor mit Docker installieren.

In diesem Beispiel wirst du harbor über die Docker-Engine installieren. Also installierst du jetzt die Docker CE (Community Edition) auf deinem Ubuntu-Server über das offizielle Docker-Repository.

Führe den folgenden apt-Befehl aus, um einige grundlegende Abhängigkeiten zu installieren.

sudo apt install \
    ca-certificates \
    curl \
    gnupg \
    lsb-release

Gib y ein, wenn du zur Bestätigung aufgefordert wirst. Drücke dann ENTER, um fortzufahren.

Nachdem die Abhängigkeiten installiert sind, lade mit dem folgenden Befehl den GPG-Schlüssel für das Docker-Repository herunter und füge das offizielle Docker-Repository zu deinem System hinzu.

sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

echo \
„deb [arch=$(dpkg –print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable“ | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

Aktualisiere nun deinen Paketindex mit dem unten stehenden apt-Befehl.

sudo apt update

Du wirst die Ausgabe erhalten, dass das Docker CE Repository hinzugefügt wurde.

Als Nächstes installierst du mit dem folgenden apt-Befehl Docker CE und Docker Compose auf deinem System.

sudo apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin

Gib y ein, um die Installation zu bestätigen, und drücke dann ENTER, um fortzufahren.

Docker installieren

Nachdem Docker installiert ist, führe den folgenden systemctl-Befehl aus, um den aktuellen Status des Docker-Dienstes zu überprüfen.

sudo systemctl is-enabled docker
sudo systemctl status docker

Du solltest jetzt eine Ausgabe wie im folgenden Screenshot erhalten – der Docker-Dienst läuft und ist aktiviert. Der Docker-Dienst wird beim Systemstart automatisch ausgeführt.

verifiziere den Docker-Dienst

Nachdem die Docker-Engine installiert ist, startest du als Nächstes die Harbor-Installation, indem du das Harbor-Installer-Paket herunterlädst.

Herunterladen des Harbor-Installationspakets

Für die Installation von harbor musst du das harbor installer Paket herunterladen. Es gibt zwei Arten von Harbor-Installationspaketen: die Offline-Version und die Online-Version.

In diesem Leitfaden wird das Offline-Installationsprogramm von harbor für die Installation von harbor verwendet. Du lädst also jetzt den harbor offline installer auf dein System herunter.

Verschiebe das Arbeitsverzeichnis nach „/tmp“ und lade den harbor offline installer mit dem unten stehenden curl-Befehl herunter.

cd /tmp
curl -s https://api.github.com/repos/goharbor/harbor/releases/latest | grep browser_download_url | cut -d '"' -f 4 | grep '\.tgz$' | wget -i -

Entpacke nun den harbor offline installer mit dem unten stehenden tar-Befehl. Nachdem der Installer entpackt wurde, solltest du das neue Verzeichnis„harbor“ sehen.

tar -xzvf harbor-offline-installer-v2.6.1.tgz

Verschiebe das Verzeichnis„harbor“ nach „/opt, so dass deine Harbor-Installation„/opt/harbor“ lautet.

sudo mv harbor /opt/

Hafen-Installationsprogramm herunterladen

Konfigurieren der Harbor-Installation

Nachdem du das harbor Offline-Installationsprogramm heruntergeladen hast, richtest du die Harbor-Installation über die Konfigurationsdatei „harbor.yml“ ein, die im harbor-Paket enthalten ist.

In der Datei „harbor.yml“ legst du den Domänennamen für die Harbor-Installation fest, aktivierst sicheres HTTPS auf dem Harbor, legst ein Admin-Passwort fest und richtest schließlich die Datenbank ein.

Bevor du beginnst, stelle sicher, dass der Domainname auf die IP-Adresse des Servers verweist und dass du SSL-Zertifikate erstellt hast, die zur Sicherung von harbor verwendet werden.

Verschiebe dein Arbeitsverzeichnis in das harbor-Installationsverzeichnis ‚/opt/harbor‘.

cd /opt/harbor

Kopiere die harbor-Konfigurationsvorlage „harbor.yml.tmpl“ nach„harbor.yml„. Bearbeite dann die harbor-Konfigurationsdatei„harbor.yml“ mit dem folgenden nano-Editor-Befehl.

cp harbor.yml.tmpl harbor.yml
sudo nano harbor.yml

Ändere die Detailkonfigurationen wie unten beschrieben.

# The IP address or hostname to access admin UI and registry service.
# DO NOT use localhost or 127.0.0.1, because Harbor needs to be accessed by external clients.
hostname: registry.hwdomain.io

….

# https related config
https:
# https port for harbor, default is 443
port: 443
# The path of cert and key files for nginx
certificate: /etc/letsencrypt/live/registry.hwdomain.io/fullchain.pem
private_key: /etc/letsencrypt/live/registry.hwdomain.io/privkey.pem

….

# The initial password of Harbor admin
# It only works in first time to install harbor
# Remember Change the admin password from UI after launching Harbor.
harbor_admin_password: Harbor_Docker_Ubuntu

….

# Harbor DB configuration
database:
# The password for the root user of Harbor DB. Change this before any production use.
password: db_pass_harbor

Speichere die Datei und beende den Editor, wenn du fertig bist.

Nachfolgend findest du den detaillierten Abschnitt der Konfiguration:

  • hostname – der Domainname, unter dem die harbor image registry ausgeführt wird. In diesem Beispiel wird der Harbor auf „registry.hwdomain.io“ installiert.
  • https – wenn du diese Option deaktivierst, wird deine Harbor-Installation aktiviert und gesichert. Du musst aber auch sicherstellen, dass du SSL-Zertifikate für deine Domain erstellt hast und den vollständigen Pfad des öffentlichen und privaten Schlüssels des Zertifikats eingeben.
  • harbor_admin_password – das anfängliche Passwort, das während der Harbor-Installation verwendet werden soll.
  • database – die Datenbankkonfiguration für den Harbor. Achte darauf, das Passwort durch ein neues, sicheres Passwort zu ersetzen.

Installation von Harbor über Installer Script und Docker Compose

Nachdem der harbor Offline-Installer heruntergeladen und die Basiskonfigurationsdatei „harbor.yml“ konfiguriert wurde, kannst du die Harbor-Installation mit dem Installer-Skript „install.sh“ starten, das im Harbor-Installationsverzeichnis „/opt/harbor“ verfügbar ist.

Bevor du die Harbor-Installation startest, stelle sicher, dass dein aktuelles Arbeitsverzeichnis „/opt/harbor“ ist.

Führe nun das harbor-Installationsskript„install.sh“ mit sudo-Rechten aus.

sudo ./install.sh

Das Installationsskript prüft nun die Systemanforderungen, bevor es mit der Installation von harbor beginnt. Der Installer stellt sicher, dass die Docker-Engine und Docker Compose auf dem System installiert sind.

Installieren des Hafens

Nun extrahiert das Installationsprogramm die Images, die für die Bereitstellung von harbor verwendet werden.

Bilder extrahieren

Danach bereitet das Installationsprogramm die Systemumgebung für den Einsatz von harbor vor und erstellt die notwendigen Konfigurationen. Dann beginnt die Installation.

Umgebung vorbereiten

Wenn die Installation abgeschlossen ist, solltest du die Meldung sehen, dass die Containerdienste von harbor laufen.

Hafeninstallation abgeschlossen

Nachdem du harbor über das Installer-Skript installiert hast, überprüfst du als Nächstes harbor, indem du die Containerdienste auf deinem System überprüfst und über den Webbrowser auf die harbor-Image-Registry zugreifst.

Führe den folgenden Befehl „docker compose“ aus, um zu überprüfen, ob die harbor-Containerdienste laufen.

ls
docker compose ps

Die folgende Ausgabe zeigt, dass die Harbor-Containerdienste laufen und in Ordnung sind.

ccheck harbor container services

Als Nächstes öffnest du deinen Webbrowser und rufst die Domain deiner harbor-Installation auf (z.B.: https://registry.hwdomain.io/). Du solltest nun die Anmeldeseite deiner harbor image registry sehen.

Melde dich mit dem Standardbenutzer admin und dem Passwort an, das du in der Konfigurationsdatei„harbor.yml“ festgelegt hast.

Hafen-Login

Wenn du das richtige Passwort hast, solltest du jetzt das harbor-Dashboard sehen. Außerdem siehst du auf deinem Bildschirm das Standardprojekt im harbor mit dem Namen „library„.

Dashboard im Hafen

Jetzt hast du die Baro-Bereitstellung abgeschlossen und sichergestellt, dass der Harbor über die Container-Orchestrierung Docker Engine und Docker Compose läuft.

Im nächsten Schritt lernst du die grundlegende Verwaltung der Harbor Image Registry kennen. Du lernst, wie du einen Benutzer hinzufügst, das Projekt einrichtest, dich über das Docker CLI anmeldest und schließlich Images in den Harbor hochlädst.

Harbor-Benutzer anlegen

Nachdem die Harbor Image Registry läuft, solltest du nun lernen, wie du über das Harbor Administration Dashboard einen neuen Benutzer einrichtest und anlegst.

Klicke im Bereich „Verwaltung“ auf das Menü „Benutzer“ und dann auf die Schaltfläche „NEUER BENUTZER„.

Neuen Benutzer anlegen

Gib die Daten des neuen Benutzers ein und bestätige mit der Schaltfläche „OK„. In diesem Beispiel erstellst du einen neuen Harbor-Benutzer „alice„, mit dem du dich über die Docker-Cli in den Harbor einloggen kannst.

Benutzerdetails

Sobald der Benutzer erstellt ist, solltest du ihn in der Menüliste „Benutzer“ sehen.

neuer Benutzer erstellt

Hinzufügen eines Benutzers zum Harbor-Projekt

In harbor ist der Benutzerbereich, in dem der Benutzer arbeiten wird, das Projekt. Bei der Standardinstallation hat Harbor den Standardprojektnamen „Bibliothek„.

In diesem Schritt erfährst du, wie du den neuen Benutzer „alice“ zum Standardprojekt „library“ hinzufügst, damit der neue Benutzer das Projekt „library“ verwalten kann. Außerdem musst du dem neuen Benutzer die Rolle für das Zielprojekt zuweisen.

Klicke auf das Menü „Projekt“ und du solltest das Standardprojekt „Bibliothek“ in deinem Hafen sehen.

Klicke auf das Projekt „Bibliothek„, um die Detaileinstellungen dieses Projekts aufzurufen.

Hafenprojekt

Klicke auf das Menü „Mitglieder“ und du solltest sehen, dass es nur einen Administrator für dieses Projekt gibt. Klicke auf die Schaltfläche„BENUTZER„, um den Hafenbenutzer zu derProjektbibliothek hinzuzufügen.

Benutzer zum Projekt hinzufügen

Gib den Benutzer ein, den du dem Projekt hinzufügen möchtest, und weise ihm die Rolle zu. In diesem Beispiel wird der Benutzer „alice“ mit der Rolle „Projektadministrator“ zur Projektbibliothek hinzugefügt.

Klicke zur Bestätigung auf „OK„.

Benutzer zum Projekt hinzufügen

Du solltest jetzt sehen, dass der Benutzer „alice“ in der Mitgliederliste des Projekts „library“ verfügbar ist.

Benutzer hinzugefügt

Anmeldung bei Harbor über den Docker Client

In diesem Schritt lernst du, wie du die Harbor Image Registry mit dem Docker CLI einrichtest. Du meldest dich bei der harbor image registry über die Docker CLI mit dem Benutzer an, den du erstellt hast – in diesem Beispiel ist es der Benutzer „alice„.

Gehe zurück zu deinem Terminalserver und führe den folgenden Docker-Befehl aus, um dich bei der harbor image registry anzumelden.

docker login https://registry.hwdomain.io/

Wenn du dazu aufgefordert wirst, gibst du den Benutzernamen und das Passwort für deinen Benutzer ein. In diesem Beispiel wird der Benutzer „alice“ verwendet.

Wenn die Anmeldung erfolgreich war, solltest du eine Meldung wie„Login Succeeded“ sehen.

Anmeldung bei harbor über docker cli

Nachdem du dich über den Docker-Cli bei Harbor angemeldet hast, kannst du nun über den Docker-Cli Images in den Harbor ziehen und pushen.

Bilder in die Harbor Registry pushen

Nachdem du dich bei der Harbor-Image-Registry authentifiziert hast, erfährst du jetzt, wie du ein Image über die Docker CLI in deine Harbor-Image-Registry pushen/uploaden kannst.

Bevor du beginnst, führe den folgenden Docker-Befehl aus, um die neueste Version des Images „nginx:alpine“ herunterzuladen.

docker pull nginx:alpine

Überprüfe nun die Liste der Images mit dem folgenden Docker-Befehl. Du solltest sehen, dass das Image„nginx:alpine“ heruntergeladen wurde.

docker images

Liste der Bilder

Um die benutzerdefinierten Images in die Harbor-Image-Registry zu übertragen, kannst du das Tag des aktuellen Images im Format „harbor-domain.com/project/image:version“ ändern.

Führe also den folgenden Befehl aus, um das Standard-Tag „nginx:alpine“ in „registry.hwdomain.io/library/nginx:alpine“ zu ändern.

docker tag nginx:alpine registry.hwdomain.io/library/nginx:alpine

Danach lädst du das Bild mit folgendem Befehl in die harbor image registry hoch und pushst es. Mit diesem Befehl wird das Bild mit dem Projektnamen „library“ in die Bildregistrierung „registry.hwdomain.io“ hochgeladen.

docker push registry.hwdomain.io/library/nginx:alpine

Unten siehst du die Ausgabe während des Hochladens des Bildes in die harbor image registry.

taggen und Bild in die Harbor Image Rgistry schieben

Sobald das Bild in den Harbor hochgeladen wurde, gehst du zurück zum Harbor-Administrations-Dashboard, klickst auf das Menü „Projekt“ und dann auf „Repositories„. Du solltest sehen, dass das neue Image über die Docker-Befehlszeile in die harbor image registry hochgeladen wurde.

Hafenbild-Register

Fazit

Du hast die harbor image registry über Docker auf einem Ubuntu 22.04 Server installiert. Außerdem hast du die Harbor-Installation mit SSL-Zertifikaten gesichert, sodass du jetzt über eine sichere HTTPS-Verbindung auf den Harbor zugreifen kannst.

Für die grundlegende Administration von harbor hast du gelernt, wie du Benutzer einrichtest und ihnen eine Rolle in harbor zuweist. Außerdem hast du gelernt, wie du Projekte in harbor verwalten kannst. Und schließlich hast du harbor erfolgreich zu Docker als Image-Registry hinzugefügt und ein Image in harbor hochgeladen.

Nun kannst du einen neuen Benutzer hinzufügen und ein neues Projekt einrichten, das für dein Entwicklungsteam verwendet werden soll.

Das könnte dich auch interessieren …