Harbor
Harbor adalah private container registry open source yang dapat kamu host sendiri (self-hosted).
Harbor menggunakan Docker Compose untuk menjalankan beberapa service seperti registry, UI, database, jobservice, notary, dsb.
Prasyarat Sistem
Pastikan sistem kamu memenuhi prasyarat berikut:
| Komponen | Minimum Versi | Keterangan |
|---|---|---|
| OS | Ubuntu / CentOS / Alpine | Linux environment |
| Docker | ≥ 20.10 | Sudah berjalan |
| Docker Compose | ≥ 1.29 | Untuk orkestrasi container |
| CPU | 2 core | Minimum |
| RAM | 4 GB | Minimum |
| Disk | 40 GB | Untuk penyimpanan image |
Download Harbor Installer
wget https://github.com/goharbor/harbor/releases/download/v2.10.0/harbor-online-installer-v2.10.0.tgz
tar xvf harbor-online-installer-v2.10.0.tgz
cd harbor
Edit Konfigurasi harbor.yml
Buka file konfigurasi utama:
nano harbor.yml
Contoh konfigurasi dasar:
hostname: registry.localdomain
http:
port: 8080
# Jika ingin HTTPS, aktifkan ini:
# https:
# port: 443
# certificate: /etc/ssl/certs/harbor.crt
# private_key: /etc/ssl/private/harbor.key
harbor_admin_password: devopsTSG2025
database:
password: devopsTSG2025
data_volume: /data
Jalankan Installasi dengan Docker Compose
Jalankan perintah berikut:
sudo ./install.sh
Proses ini akan otomatis:
- Menghasilkan file
docker-compose.yml - Menarik semua image Harbor
- Menjalankan semua service: registry, core, portal, db, dsb
Cek Container yang Berjalan
docker compose ps
atau
docker ps
Contoh hasilnya:
harbor-core
harbor-db
harbor-jobservice
harbor-log
harbor-portal
harbor-registry
Akses Web UI
Akses melalui browser:
http://<hostname atau IP kamu>:8080
Login menggunakan:
- Username:
admin - Password:
devopsTSG2025
Integrasi Docker Client
Agar Docker bisa push/pull image dari Harbor:
docker login <hostname>:8080
Masukkan username dan password admin.
Push contoh image:
docker tag nginx:latest <hostname>:8080/library/nginx:latest
docker push <hostname>:8080/library/nginx:latest
Menghentikan atau Menghapus Harbor
Untuk menghentikan Harbor:
docker compose down
Untuk menyalakan ulang:
docker compose up -d
Konfigurasi Docker Client
Tambahkan ke file /etc/docker/daemon.json di host client:
{
"insecure-registries": ["harbor.example.com:8080"]
}