1. Docker Registry - Tổng quan
Docker Registry là dịch vụ lưu trữ và phân phối Docker images. Registry đóng vai trò trung tâm trong workflow CI/CD và deployment.
Các loại Registry phổ biến
Docker Hub: Public registry mặc định, miễn phí cho public repos
GitHub Container Registry (GHCR): Tích hợp với GitHub Actions
AWS ECR: Amazon Elastic Container Registry
Google Artifact Registry: GCP container registry
Azure Container Registry (ACR): Microsoft Azure
Harbor: Open-source enterprise registry
Docker Registry: Self-hosted open-source registry
2. Docker Hub
2.1. Tạo và quản lý Repositories
# Login vào Docker Hub docker loginTag image cho Docker Hub
docker tag myapp:latest username/myapp:1.0.0 docker tag myapp:latest username/myapp:latest
Push image
docker push username/myapp:1.0.0 docker push username/myapp:latest
Pull image
docker pull username/myapp:1.0.0
2.2. Automated Builds với GitHub
Docker Hub có thể tự động build image khi push code lên GitHub:
Link GitHub repository với Docker Hub repository
Cấu hình build rules (branch, tag patterns)
Mỗi push sẽ trigger automated build
2.3. Webhooks
Docker Hub hỗ trợ webhooks để notify khi image được push thành công, phục vụ cho CI/CD pipeline.
3. Self-hosted Docker Registry
3.1. Triển khai Registry cơ bản
# Chạy registry đơn giản docker run -d -p 5000:5000 --name registry \ --restart=always \ registry:2Push image lên local registry
docker tag myapp:latest localhost:5000/myapp:1.0 docker push localhost:5000/myapp:1.0
Pull image từ local registry
docker pull localhost:5000/myapp:1.0
3.2. Registry với Storage và TLS
# docker-compose.yml cho production registry services: registry: image: registry:2 ports: - "5000:5000" environment: REGISTRY_STORAGE_FILESYSTEM_ROOTDIRECTORY: /var/lib/registry REGISTRY_HTTP_TLS_CERTIFICATE: /certs/domain.crt REGISTRY_HTTP_TLS_KEY: /certs/domain.key REGISTRY_AUTH: htpasswd REGISTRY_AUTH_HTPASSWD_REALM: "Registry Realm" REGISTRY_AUTH_HTPASSWD_PATH: /auth/htpasswd volumes: - registry-data:/var/lib/registry - ./certs:/certs:ro - ./auth:/auth:ro restart: always
volumes: registry-data:
# Tạo htpasswd file
docker run --rm --entrypoint htpasswd \
httpd:2 -Bbn admin secretpassword > auth/htpasswd
# Login vào private registry
docker login registry.example.com
4. Harbor - Enterprise Container Registry
Harbor là open-source enterprise registry với nhiều tính năng nâng cao:
RBAC: Role-based access control
Vulnerability Scanning: Tích hợp Trivy
Image Signing: Cosign/Notary
Replication: Sync images giữa registries
Garbage Collection: Tự động cleanup
Audit Logs: Theo dõi mọi hoạt động
# Cài đặt Harbor (đã có bài viết riêng trong series)
# Tham khảo: "Cài đặt Harbor trên Ubuntu 24.04"
# Push image lên Harbor
docker login harbor.example.com
docker tag myapp:latest harbor.example.com/myproject/myapp:1.0
docker push harbor.example.com/myproject/myapp:1.0
5. Image Tagging Strategies
Semantic Versioning
# Major.Minor.Patch docker tag myapp:latest myapp:1.2.3 docker tag myapp:latest myapp:1.2 docker tag myapp:latest myapp:1Cho phép user chọn level of specificity
myapp:1 → latest 1.x.x
myapp:1.2 → latest 1.2.x
myapp:1.2.3 → exact version
Git-based Tagging
# Git commit SHA docker tag myapp:latest myapp:abc1234Git branch
docker tag myapp:latest myapp:main docker tag myapp:latest myapp:develop
Git tag
docker tag myapp:latest myapp:v1.2.3
Date-based Tagging
# Calendar versioning
docker tag myapp:latest myapp:2026.03.30
docker tag myapp:latest myapp:20260330-abc1234
6. Registry HTTP API
# Liệt kê repositories curl https://registry.example.com/v2/_catalogLiệt kê tags
curl https://registry.example.com/v2/myapp/tags/list
Xem manifest
curl -H "Accept: application/vnd.docker.distribution.manifest.v2+json"
https://registry.example.com/v2/myapp/manifests/latest
7. Tổng kết
Trong bài này, bạn đã nắm được:
Các loại Docker Registry và use cases
Docker Hub: push, pull, automated builds, webhooks
Self-hosted registry với Docker Registry
Harbor enterprise registry overview
Image tagging strategies cho production
Registry HTTP API
Bài tiếp theo sẽ hướng dẫn Docker Compose cơ bản - deploy multi-container applications.