Cài Đặt Harbor trên Ubuntu 24.04
Hướng dẫn chi tiết cài đặt Harbor - private Docker registry trên Ubuntu 24.04, bao gồm HTTPS, bảo mật, backup và best practices.
Giới thiệu
Harbor là một registry mã nguồn mở để lưu trữ và quản lý Docker images và Helm charts. Harbor mở rộng Docker Registry bằng cách thêm các chức năng như quản lý người dùng, quét bảo mật, và sao chép image giữa các registry.
Yêu cầu hệ thống
- Hệ điều hành: Ubuntu 24.04 LTS
- CPU: Tối thiểu 2 cores
- RAM: Tối thiểu 4GB (khuyến nghị 8GB)
- Ổ cứng: Tối thiểu 40GB dung lượng trống
- Quyền truy cập: Root hoặc sudo
Các bước cài đặt
Bước 1: Cập nhật hệ thống
Đầu tiên, cập nhật danh sách packages và nâng cấp hệ thống:
bash
sudo apt update
sudo apt upgrade -yBước 2: Cài đặt Docker
Harbor yêu cầu Docker để chạy. Cài đặt Docker bằng các lệnh sau:
bash
# Cài đặt Docker
sudo apt install -y docker.io
# Khởi động và kích hoạt Docker
sudo systemctl start docker
sudo systemctl enable docker
# Kiểm tra phiên bản Docker
docker --versionBước 3: Cài đặt Docker Compose
Docker Compose được sử dụng để quản lý các container của Harbor:
# Tải Docker Compose
sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
# Cấp quyền thực thi
sudo chmod +x /usr/local/bin/docker-compose
# Kiểm tra phiên bản
docker-compose --versionBước 4: Tải xuống Harbor
Di chuyển đến thư mục /opt và tải phiên bản Harbor mới nhất:
# Di chuyển đến thư mục /opt
cd /opt
# Tải Harbor (phiên bản 2.11.2 - kiểm tra phiên bản mới nhất tại GitHub)
sudo wget https://github.com/goharbor/harbor/releases/download/v2.11.2/harbor-offline-installer-v2.11.2.tgz
# Giải nén
sudo tar xzvf harbor-offline-installer-v2.11.2.tgzBước 5: Cấu hình Harbor
Di chuyển vào thư mục Harbor và tạo file cấu hình:
cd /opt/harbor
sudo cp harbor.yml.tmpl harbor.ymlChỉnh sửa file cấu hình harbor.yml:
sudo nano harbor.ymlCác thông số cần cấu hình quan trọng:
# Hostname - thay bằng IP hoặc domain của bạn
hostname: your-domain.com # hoặc IP: 192.168.1.100
# Giao thức HTTP
http:
port: 80
# Giao thức HTTPS (tùy chọn - khuyến nghị cho production)
# Bỏ comment nếu muốn sử dụng HTTPS
# https:
# port: 443
# certificate: /path/to/cert.crt
# private_key: /path/to/cert.key
# Mật khẩu admin mặc định (NÊN ĐỔI)
harbor_admin_password: Harbor12345
# Cơ sở dữ liệu
database:
password: root123
max_idle_conns: 100
max_open_conns: 900
# Thư mục lưu trữ data
data_volume: /dataLưu ý quan trọng:
- hostname: Phải là domain hoặc IP mà bạn sẽ truy cập Harbor
- harbor_admin_password: Đổi mật khẩu mặc định để bảo mật
- Nếu chỉ test trên máy local, có thể để HTTP. Với production nên dùng HTTPS
Bước 6: Cài đặt Harbor
Chạy script cài đặt:
# Cài đặt Harbor cơ bản
sudo ./install.sh
# Hoặc cài đặt với các thành phần bổ sung
# sudo ./install.sh --with-trivy --with-chartmuseumCác tùy chọn cài đặt:
--with-trivy: Bật tính năng quét lỗ hổng bảo mật--with-chartmuseum: Bật hỗ trợ Helm chart repository--with-notary: Bật tính năng ký số content trust
Bước 7: Kiểm tra trạng thái
Sau khi cài đặt, kiểm tra các container Harbor:
sudo docker-compose psBạn sẽ thấy các container đang chạy như:
- harbor-core
- harbor-portal
- harbor-db
- harbor-redis
- nginx
- registry
Bước 8: Truy cập Harbor Web UI
Mở trình duyệt và truy cập:
http://your-hostname-or-ipThông tin đăng nhập mặc định:
- Username:
admin - Password: Mật khẩu bạn đã cấu hình trong
harbor.yml(mặc định:Harbor12345)
Quản lý Harbor
Dừng Harbor
cd /opt/harbor
sudo docker-compose stopKhởi động Harbor
cd /opt/harbor
sudo docker-compose startKhởi động lại Harbor
cd /opt/harbor
sudo docker-compose restartGỡ cài đặt Harbor
cd /opt/harbor
sudo docker-compose down -vCấu hình Docker Client để sử dụng Harbor
Với HTTP (không SSL)
Thêm Harbor vào danh sách insecure registries:
sudo nano /etc/docker/daemon.jsonThêm nội dung:
json
{
"insecure-registries": ["your-harbor-ip:80"]
}Khởi động lại Docker:
sudo systemctl restart dockerĐăng nhập vào Harbor từ Docker CLI
docker login your-harbor-ip
# Nhập username: admin
# Nhập password: your-passwordPush image lên Harbor
# Tag image
docker tag nginx:latest your-harbor-ip/library/nginx:latest
# Push image
docker push your-harbor-ip/library/nginx:latestPull image từ Harbor
docker pull your-harbor-ip/library/nginx:latestCấu hình HTTPS cho Harbor (Production)
1. Tạo self-signed certificate (cho test)
# Tạo thư mục chứa certificate
sudo mkdir -p /opt/harbor/certs
cd /opt/harbor/certs
# Tạo private key
sudo openssl genrsa -out harbor.key 4096
# Tạo certificate signing request
sudo openssl req -new -key harbor.key -out harbor.csr
# Tạo self-signed certificate
sudo openssl x509 -req -days 365 -in harbor.csr -signkey harbor.key -out harbor.crt2. Cập nhật cấu hình Harbor
Chỉnh sửa /opt/harbor/harbor.yml:
https:
port: 443
certificate: /opt/harbor/certs/harbor.crt
private_key: /opt/harbor/certs/harbor.key3. Cài đặt lại Harbor
cd /opt/harbor
sudo ./prepare
sudo docker-compose down -v
sudo docker-compose up -dBackup và Restore
Backup Harbor
# Backup cơ sở dữ liệu và cấu hình
cd /opt/harbor
sudo docker-compose stop
# Backup data directory
sudo tar -czf harbor-backup-$(date +%Y%m%d).tar.gz /data /opt/harbor/harbor.yml
sudo docker-compose startRestore Harbor
# Stop Harbor
cd /opt/harbor
sudo docker-compose down
# Restore data
sudo tar -xzf harbor-backup-YYYYMMDD.tar.gz -C /
# Start Harbor
sudo docker-compose up -dKhắc phục sự cố thường gặp
1. Harbor không khởi động được
Kiểm tra logs:
cd /opt/harbor
sudo docker-compose logs2. Không thể push/pull image
- Kiểm tra cấu hình
insecure-registriestrong/etc/docker/daemon.json - Đảm bảo đã đăng nhập:
docker login your-harbor-ip - Kiểm tra firewall:
sudo ufw status
3. Lỗi "x509: certificate signed by unknown authority"
Nếu dùng self-signed certificate, cần thêm certificate vào Docker:
sudo mkdir -p /etc/docker/certs.d/your-harbor-ip
sudo cp /opt/harbor/certs/harbor.crt /etc/docker/certs.d/your-harbor-ip/ca.crt
sudo systemctl restart docker4. Port đã được sử dụng
Kiểm tra port đang sử dụng:
sudo netstat -tulpn | grep :80Đổi port trong harbor.yml nếu cần.
Các tính năng nâng cao
1. Quét lỗ hổng bảo mật với Trivy
Sau khi cài đặt với --with-trivy, bạn có thể:
- Quét image tự động khi push
- Xem báo cáo lỗ hổng trong Web UI
- Chặn pull image có lỗ hổng nghiêm trọng
2. Sao chép (Replication)
Harbor hỗ trợ sao chép image giữa các registry:
- Truy cập Administration → Replications
- Tạo endpoint đích
- Tạo rule replication
3. Quản lý người dùng và phân quyền
- Tạo projects riêng cho từng team
- Phân quyền: Project Admin, Developer, Guest
- Tích hợp LDAP/AD cho authentication
4. Webhook
Cấu hình webhook để nhận thông báo khi:
- Image được push
- Image được pull
- Quét bảo mật hoàn thành
Bảo mật Harbor
Best Practices
- Đổi mật khẩu admin mặc định ngay sau khi cài đặt
- Sử dụng HTTPS cho production environment
- Bật quét lỗ hổng bảo mật với Trivy
- Giới hạn truy cập bằng firewall
- Backup định kỳ data và cấu hình
- Cập nhật Harbor thường xuyên
- Sử dụng RBAC để quản lý quyền truy cập
- Bật audit log để theo dõi hoạt động
Cấu hình Firewall
# Cho phép HTTP (port 80)
sudo ufw allow 80/tcp
# Cho phép HTTPS (port 443)
sudo ufw allow 443/tcp
# Cho phép SSH
sudo ufw allow 22/tcp
# Kích hoạt firewall
sudo ufw enableKết luận
Bạn đã hoàn thành việc cài đặt Harbor trên Ubuntu 24.04. Harbor giờ đây có thể được sử dụng như một private Docker registry cho tổ chức của bạn với đầy đủ các tính năng quản lý, bảo mật và sao chép.
Tài nguyên tham khảo
- Harbor Official Documentation: https://goharbor.io/docs/
- GitHub Repository: https://github.com/goharbor/harbor
- Community Forum: https://github.com/goharbor/harbor/discussions
Các lệnh hữu ích
# Kiểm tra phiên bản Harbor
docker exec harbor-core harbor version
# Xem logs của tất cả services
docker-compose logs -f
# Xem logs của một service cụ thể
docker-compose logs -f harbor-core
# Kiểm tra disk usage
df -h /data
# Clean up unused images (giải phóng dung lượng)
docker system prune -aLưu ý: Hướng dẫn này áp dụng cho Harbor v2.11.2 trên Ubuntu 24.04. Một số chi tiết có thể thay đổi tùy theo phiên bản Harbor bạn sử dụng.