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.

Cài Đặt Harbor trên Ubuntu 24.04

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 -y

Bướ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 --version

Bướ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 --version

Bướ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.tgz

Bướ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.yml

Chỉnh sửa file cấu hình harbor.yml:

sudo nano harbor.yml

Cá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: /data

Lưu ý quan trọng:

  1. hostname: Phải là domain hoặc IP mà bạn sẽ truy cập Harbor
  2. harbor_admin_password: Đổi mật khẩu mặc định để bảo mật
  3. 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-chartmuseum

Cá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 ps

Bạ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-ip

Thô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 stop

Khởi động Harbor

cd /opt/harbor
sudo docker-compose start

Khởi động lại Harbor

cd /opt/harbor
sudo docker-compose restart

Gỡ cài đặt Harbor

cd /opt/harbor
sudo docker-compose down -v

Cấ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.json

Thê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-password

Push 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:latest

Pull image từ Harbor

docker pull your-harbor-ip/library/nginx:latest

Cấ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.crt

2. 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.key

3. Cài đặt lại Harbor

cd /opt/harbor
sudo ./prepare
sudo docker-compose down -v
sudo docker-compose up -d

Backup 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 start

Restore 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 -d

Khắ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 logs

2. Không thể push/pull image

  • Kiểm tra cấu hình insecure-registries trong /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 docker

4. 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 AdministrationReplications
  • 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

  1. Đổi mật khẩu admin mặc định ngay sau khi cài đặt
  2. Sử dụng HTTPS cho production environment
  3. Bật quét lỗ hổng bảo mật với Trivy
  4. Giới hạn truy cập bằng firewall
  5. Backup định kỳ data và cấu hình
  6. Cập nhật Harbor thường xuyên
  7. Sử dụng RBAC để quản lý quyền truy cập
  8. 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 enable

Kế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

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 -a

Lư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.

#harbor #Docker #Docker Registry #Ubuntu 24.04 #Container