Harbor is een open source container registry platform. Het biedt een veilige en geavanceerde manier om container images op te slaan, te beheren en te delen, bijvoorbeeld voor gebruik op je Kubernetes-cluster.
In deze handleiding laten we zien hoe je een Harbor container registry host in Linux en een 'secret' aanmaakt om je eigen container image te kunnen pushen naar je Harbor registry.
Gebruik je liever Docker? Zie dan deze handleiding voor het hosten van een Docker container registry op een Kubernetes-cluster. Hoe je vervolgens een applicatie containeriseerd en naar je registry pushed leggen we in dit artikel uit.
Voor de stappen in deze handleiding heb je nodig:
- Docker (engine of desktop), zie onze Docker-installatiehandleidingen voor Linux
- Docker compose, zie onze Docker-Compose-installatiehandleiding voor Linux
- Een server met 2 CPU cores en 4GB RAM
- Een (sub)domein waarvan de DNS-records naar de server(s) verwijzen waarop je Harbor host
Harbor installeren op een Linux-VPS
Stap 1
First things first: voor het hosten van Harbor is een SSL-certificaat nodig van Let's Encrypt of een Certificate Authority. We kiezen hier voor Let's Encrypt, die je installeert als volgt:
Ubuntu / Debian:
sudo apt -y install certbot
CentOS / AlmaLinux / Rocky Linux:
sudo dnf -y install certbot
Stap 2
Stop eventuele processen die gebruik maken van poort 80 en 443, zoals Apache/Nginx (snel te controleren met 'netstat -tulpn | less') en genereer een Let's Encrypt certificaat voor het domein dat naar jouw VPS verwijst:
certbot certonly --standalone -d jouwdomein.nl
Doorloop de aangegeven stappen. Je krijgt aan het eind te zien waar je certificaat en key files zich bevinden. Noteer deze locaties.
Stap 3
Download de laatste versie van Harbor van de officiële website. Klik hiervoor op deze pagina op 'Assets' en download de .tgz off-line installer, bijvoorbeeld:
wget
https://github.com/goharbor/harbor/releases/download/v2.5.5/harbor-offline-installer-v2.5.5.tgz
Stap 4
Pak het bestand uit (tip: type tar -xvzf harbor en druk op de tab-toets):
tar -xvzf harbor-offline-installer-v2.5.5.tgz
Stap 5
Navigeer naar de map waar Harbor in is uitgepakt:
cd harbor
Stap 6
Maak een kopie van het bestand harbor.yml.tmpl zonder de .tmpl toevoeging en open het bestand:
cp harbor.yml.tmpl harbor.yml nano harbor.yml
Stap 7
Je bent vrij aanpassingen te maken, maar voor de succesvolle installatie van Harbor hoef je maar twee aanpassingen te maken:
- hostname: Pas de waarde aan naar het domein waar je eerder een SSL-certificaat voor hebt gegenereerd.
- certificate/private key: Pas de waardes aan naar de locatie van het in stap 2 gegenereerde SSL-certificaat.
Sla de wijzigingen op en sluit het bestand (ctrl + x > y > enter).
Stap 8
Installeer nu harbor door het installatiescript uit te voeren:
./install.sh
Dit commando installeert en configureert alle benodigde Docker-containers en services om Harbor te laten werken. Dit kan enkele minuten duren.
Gefeliciteerd! Harbor draait nu op jouw server. Om die te testen kun je direct inloggen door naar het domein te gaan dat je als hostname hebt opgegeven in harbor.yml en in te loggen met de gebruikersnaam 'admin' en het wachtwoord 'Harbor12345' (pas die uiteraard direct aan). Tip: Maak alvast onder 'Users' een gebruiker aan die je kunt gebruiken om container images naar je registry te pushen.
Containers naar je Harbor registry pushen
Om een gecontaineriseerde applicatie naar je Harbor registry te pushen, zijn er drie stappen nodig:
- Verbind met je eigen registry:
docker login example.com
- Tag je container image met de Harbor registry URL:
docker tag my-image example.com/my-image
- Push je container image naar de Harbor registry:
docker push example.com/my-image
Hoe je vervolgens je gecontaineriseerde applicatie deployed leggen we uit in onze handleiding 'Je gecontainerizeerde image deployen in een Kubernetes-cluster'.