Nachfolgend soll die Installation und Konfiguration von Harbor beschrieben werden.

<blockquote>

Harbor Registry ist eine der bekanntesten und am weitesten verbreiteten Open Source-Lösungen für das Speichern und Verwalten von Docker Images. Dabei geht der Funktionsumfang von Harbor deutlich über den Umfang herkömmlicher Registries, wie zum Beispiel Docker Hub hinaus. (Quelle: bnerd.com)

</blockquote>

1 - Vorbereitung

Der Harbor bringt selbst keine Zertifikate mit. Diese müssen manuell erstellt oder von Drittanbietern besorgt werden. Eine Methode zum Erstellen eines eigenen Zertifikats ist hier beschrieben.

2 - Installation

Harbor kann von der Seite „goharbor.io“ (dort dann oben auf „Getting Started“ klicken und auf dieser Seite dann unter Punkt 2 auf „Download the Harbor Installer“). Die verschiedenen Versionen sind auch auf der Release-Seite „https://github.com/goharbor/harbor/releases“ zu finden. Nachfolgend wird der Offline-Installer genutzt. Zum Zeitpunkt der Dokumentation war Version 2.14.1 aktuell.

2.1 - Docker

Docker kann aus den Repositories installiert werden, sofern die Docker-Repositories eingebunden wurden:

~#
===== 2.2 - Herunterladen der Harbor-Installationsdatei =====
<code>
~# wget https://github.com/goharbor/harbor/releases/download/v2.14.1/harbor-offline-installer-v2.14.1.tgz
--2025-12-18 22:14:12-- https://github.com/goharbor/harbor/releases/download/v2.14.1/harbor-offline-installer-v2.14.1.tgz\
Auflösen des Hostnamens github.com (github.com)… 140.82.121.3\
Verbindungsaufbau zu github.com (github.com)|140.82.121.3|:443 … verbunden.\
HTTP-Anforderung gesendet, auf Antwort wird gewartet … 302 Found
...
Verbindungsaufbau zu release-assets.githubusercontent.com (release-assets.githubusercontent.com)|185.199.111.133|:443 … verbunden.\
HTTP-Anforderung gesendet, auf Antwort wird gewartet … 200 OK\
Länge: 680961237 (649M) [application/octet-stream]\
Wird in »harbor-offline-installer-v2.14.1.tgz« gespeichert.
harbor-offline-installer-v2.14.1.tgz 100%[=========================================================================>] 649,42M 18,9MB/s in 35s
2025-12-18 22:14:47 (18,6 MB/s) - »harbor-offline-installer-v2.14.1.tgz« gespeichert [680961237/680961237]
~#

2.2 - Archiv entpacken

~# tar xzvf harbor-offline-installer-v2.14.1.tgz
harbor/harbor.v2.14.1.tar.gz\
harbor/prepare\
harbor/LICENSE\
harbor/install.sh\
harbor/common.sh\
harbor/harbor.yml.tmpl
~#

3 - Zertifikat bereitstellen

Das Zertifikat von Drittanbietern oder das selbst erstellte Zertifikat müssen dem Harbor und Docker bereitgestellt werden.

3.1 - Harbor

Für Harbor wird unter „/data“ ein entsprechendes Verzeichnis „cert/“ erstellt, wohin alle benötigten Dateien kopiert werden.

Schritt 1: Erstellen der Verzeichnisstruktur:

~# mkdir -pv /data/cert
mkdir: Verzeichnis '/data/cert' angelegt
~#

Schritt 2: Kopieren der Zertifikatsdateien:

~# cp -v slxharbor.fritz.box.crt /data/cert/ && cp -v slxharbor.fritz.box.key /data/cert/
'slxharbor.fritz.box.crt' -> '/data/cert/slxharbor.fritz.box.crt'\\
'slxharbor.fritz.box.key' -> '/data/cert/slxharbor.fritz.box.key'\\
~#

3.2 - Docker

Docker interpretiert „*.crt“-Dateien als CA-Dateien und „*.cert“-Dateien als Server-Zertifikate. Das Server-Zertifikat muss daher einmal umgewandelt werden.

Schritt 1: Konvertieren der Datei:

~# openssl x509 -inform PEM -in slxharbor.fritz.box.crt -out slxharbor.fritz.box.cert

Schritt 2: Erstellen der Verzeichnisstruktur:

~# mkdir -pv /etc/docker/certs.d/slxharbor.fritz.box
mkdir: Verzeichnis '/etc/docker' angelegt\\
mkdir: Verzeichnis '/etc/docker/certs.d' angelegt\\
mkdir: Verzeichnis '/etc/docker/certs.d/slxharbor.fritz.box' angelegt\\
~#

Schritt 3: Kopieren der Zertifikate:

~# cp -v slxharbor.fritz.box.cert /etc/docker/certs.d/slxharbor.fritz.box/ && cp -v slxharbor.fritz.box.key /etc/docker/certs.d/slxharbor.fritz.box/ && cp -v ca.crt /etc/docker/certs.d/slxharbor.fritz.box/\\
'slxharbor.fritz.box.cert' -> '/etc/docker/certs.d/slxharbor.fritz.box/slxharbor.fritz.box.cert'\\
'slxharbor.fritz.box.key' -> '/etc/docker/certs.d/slxharbor.fritz.box/slxharbor.fritz.box.key'\\
'ca.crt' -> '/etc/docker/certs.d/slxharbor.fritz.box/ca.crt'
~#

.Ende des Dokuments