Harbor – Installation et exploitation via Docker Compose sur la machine harbor
Table des matières
Pour insérer la table des matières :
Introduction, contexte, définitions et objectifs
Cette documentation décrit l’installation, la configuration et
l’exploitation de Harbor sur la machine harbor dans un contexte
d’usage interne.
Objectif
Déployer une registry privée d’entreprise permettant : - Hébergement d’images Docker internes - Gestion centralisée des projets - Contrôle d’accès RBAC - Interface web d’administration - Reverse proxy via Nginx Proxy Manager - Isolation via Docker Compose - Persistance des données
Architecture fonctionnelle
- Machine hôte :
harbor - Application : Harbor Registry
- Mode : Docker Compose
- Fichier principal :
/compose/harbor/docker-compose.yml - Données :
/data/harbor - Reverse Proxy : Nginx Proxy Manager
- Domaine interne :
harbor.int.edu-kit.fr
Sécurité
- Accès strictement interne
- Reverse proxy HTTPS
- Administration sécurisée
- RBAC
- Support robot accounts
Prérequis
Environnement système
- Nom d’hôte :
harbor - OS : Debian / Ubuntu
- CPU : 2 vCPU
- RAM : 2 Go
- Stockage système : 16 Go
- Stockage :
/compose/harbor/data/harbor
- Réseau :
- DNS interne
- HTTPS
- Accès Docker clients
Dépendances
- Docker Engine
- Docker Compose Plugin
- OpenSSL
- Nginx Proxy Manager
Installation et configuration
Installation Docker
sudo apt update && sudo apt upgrade -y
sudo apt install docker.io docker-compose-plugin openssl -y
Vérification
docker --version
docker compose version
Création de l’arborescence
sudo mkdir -p /compose/harbor
sudo mkdir -p /data/harbor
Téléchargement Harbor
cd /compose/harbor
wget https://github.com/goharbor/harbor/releases/latest/download/harbor-online-installer.tgz
tar xzf harbor-online-installer.tgz --strip-components=1
Vérification
ls -lah /compose/harbor
Configuration Harbor
Copie du template
cp harbor.yml.tmpl harbor.yml
Édition
nano harbor.yml
Paramètres principaux
hostname: harbor.int.edu-kit.fr
http:
port: 8080
harbor_admin_password: CHANGER_CE_MOT_DE_PASSE
data_volume: /data/harbor
Explication
- hostname : domaine interne
- http.port : port local
- harbor_admin_password : mot de passe admin
- data_volume : stockage persistant
Génération Docker Compose
sudo ./install.sh
Résultat attendu
- Génération de
docker-compose.yml - Déploiement automatique des services :
- core
- portal
- registry
- jobservice
- redis
- postgresql
- trivy (si activé)
Emplacement final
/compose/harbor/docker-compose.yml
Vérification
sudo docker ps
Test local
curl http://127.0.0.1:8080
Configuration Nginx Proxy Manager
Proxy Host interne
Domaine
harbor.int.edu-kit.fr
Paramètres
- Scheme :
http - Forward Hostname : IP_HARBOR
- Forward Port :
8080
SSL
- Certificat interne ou Let’s Encrypt
- Force SSL
- HTTP/2
Configuration Docker Client
Créer ou modifier :
sudo nano /etc/docker/daemon.json
Si certificat privé :
{
"insecure-registries": ["harbor.int.edu-kit.fr"]
}
Redémarrage :
sudo systemctl restart docker
Première connexion
URL
https://harbor.int.edu-kit.fr
Identifiants
- User :
admin - Password : défini dans
harbor.yml
Action immédiate
- Changer mot de passe
- Créer projets
- Configurer utilisateurs
- Robot accounts
Commandes Docker utiles
Login
docker login harbor.int.edu-kit.fr
Tag image
docker tag nginx harbor.int.edu-kit.fr/library/nginx:latest
Push
docker push harbor.int.edu-kit.fr/library/nginx:latest
Pull
docker pull harbor.int.edu-kit.fr/library/nginx:latest
Sauvegarde
Données critiques
/data/harbor
Sauvegarde
tar -czf /backup/harbor_$(date +%F).tar.gz /data/harbor
Mise à jour
Téléchargement nouvelle version
cd /compose/harbor
wget https://github.com/goharbor/harbor/releases/latest/download/harbor-online-installer.tgz
Procédure
- Sauvegarde
- Extraction
- Remplacement
harbor.yml install.sh
Problèmes rencontré :
Port déjà utilisé
sudo ss -tulpn | grep 8080
Permissions stockage
sudo chown -R 10000:10000 /data/harbor
Reverse proxy inaccessible
- Vérifier DNS
- Vérifier SSL
- Vérifier forwarding NPM
Push refusé
- Vérifier login
- Vérifier projet
- Vérifier permissions
Bonnes pratiques
- HTTPS obligatoire
- Sauvegarde quotidienne
- Restriction IP
- RBAC strict
- Trivy activé
- Rotation des logs
- Robot accounts par CI/CD
Sources :
- Documentation officielle Harbor : https://goharbor.io/docs/
- Releases Harbor : https://github.com/goharbor/harbor/releases
- Docker Documentation : https://docs.docker.com/
- Nginx Proxy Manager : https://nginxproxymanager.com/