Review of Harbor
I Had to Use Docker
Docker is quite fascinating. It was entirely possible to develop without it, and the initial learning curve was high. When I was a beginner, I kept wondering, “Why do I even need this?” However, once I learned and understood its necessity, it became difficult to imagine a developer’s life without Docker.
Once I got past the initial learning curve, it felt like stepping into a vast open field—there were plenty of reasons to overcome that hurdle. Recently, while taking an AI-related course, I wanted to integrate various models from Hugging Face into my own service. So, I decided to use Docker to manage the services on my home PC.
However, the issue was cost. Since I am currently taking a break from work to study, I have no income and need to save as much as possible. Subscribing to Docker Hub for a private repository felt too expensive, so I started looking for alternatives.
The first solution I found was to install docker-registry and operate it locally on my PC. But after further research, I discovered an open-source service called Harbor, which also provides various management features. It seemed like a great option, so I decided to try it.
How to Install Harbor
The installation of Harbor followed these basic steps. Since I lacked networking knowledge, I initially struggled a bit, but I learned a lot through the process.
1. Install Docker and Docker Compose
# Install Docker
sudo apt update
sudo apt install -y docker.io
# Install Docker Compose
sudo apt install -y docker-compose
Since Harbor runs in a container, Docker and Docker Compose need to be installed first.
2. Download the Harbor Installation Files
wget https://github.com/goharbor/harbor/releases/download/v/harbor-offline-installer-v.tgz
tar -xvzf harbor-offline-installer-v.tgz
cd harbor
3. Modify Configuration Files
Inside the installation directory, I modified the harbor.yml file. The key settings I changed were:
• hostname: Set to the IP address or domain of the Harbor server.
• https settings: If using an SSL certificate, configure the relevant paths.
4. Install and Run Harbor
./install.sh
5. Access Harbor Web UI
Once the installation was complete, I accessed the Harbor web UI via http:// or https:// in my browser. The default login credentials were:
• Username: admin
• Password: Harbor12345 (can be changed during installation)
Review of Harbor
Harbor’s web UI was clean and intuitive. The key advantages I noticed were:
1. Easy Private Repository Management
• I could store and manage Docker images in a private repository, reducing external dependencies and improving security.
2. User and Project Management Features
• It seemed useful for team collaboration. The ability to assign detailed user permissions made it safe for multiple users.
3. Webhooks and Security Policies
• Harbor provided features like setting up webhooks under specific conditions and performing security scans on images, making it suitable not just for personal projects but also for commercial applications.
Drawbacks
• The initial setup process had some trial and error due to networking and port configuration issues. Firewall settings and SSL certificate application might feel complicated for beginners.
• Since Harbor has many management features, it took some time to understand all the available options.
Conclusion
Harbor proved to be a powerful alternative to Docker Registry. It is a perfect solution for those who want to save costs without compromising on management features. If you need a Docker private repository on your personal server, it’s definitely worth trying.
Setting it up and managing it yourself is also a great learning experience. If you’re interested, I highly recommend giving it a shot!
