Skip to content

Harbor Registry đŸšĸ ​

āĻāĻ¨ā§āϟāĻžāϰāĻĒā§āϰāĻžāχāϜ āϞ⧇āϭ⧇āϞ⧇ āĻĄāĻ•āĻžāϰ āχāĻŽā§‡āϜ āĻŽā§āϝāĻžāύ⧇āϜ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āĻŦāĻ°ā§āϤāĻŽāĻžāύ⧇ āϏāĻŦāĻšā§‡ā§Ÿā§‡ āϜāύāĻĒā§āϰāĻŋ⧟ āĻ“āĻĒ⧇āύ āϏ⧋āĻ°ā§āϏ āϏāϞāĻŋāωāĻļāύ āĻšāϞ⧋ HarborāĨ¤ āĻāϟāĻŋ āĻāĻ•āϟāĻŋ āĻ•ā§āϞāĻžāωāĻĄ āύ⧇āϟāĻŋāĻ­ āϰ⧇āϜāĻŋāĻ¸ā§āĻŸā§āϰāĻŋ āĻĒā§āϰāĻœā§‡āĻ•ā§āϟ āϝāĻž āχāĻŽā§‡āϜ āϏāĻŋāĻ•āĻŋāωāϰāĻŋāϟāĻŋ āĻāĻŦāĻ‚ āĻŽā§āϝāĻžāύ⧇āϜāĻŽā§‡āĻ¨ā§āϟāϕ⧇ āĻāĻ• āϧāĻžāĻĒ āĻāĻ—āĻŋā§Ÿā§‡ āύāĻŋā§Ÿā§‡ āϝāĻžā§ŸāĨ¤


ā§§. Harbor āĻ•āĻŋ? ​

Harbor āĻšāϞ⧋ āĻāĻ•āϟāĻŋ āĻ“āĻĒ⧇āύ-āϏ⧋āĻ°ā§āϏ āĻŸā§āϰāĻžāĻ¸ā§āĻŸā§‡āĻĄ āĻ•ā§āϞāĻžāωāĻĄ āύ⧇āϟāĻŋāĻ­ āϰ⧇āϜāĻŋāĻ¸ā§āĻŸā§āϰāĻŋ āϝāĻž āĻĄāĻ•āĻžāϰ āχāĻŽā§‡āϜ āĻāĻŦāĻ‚ āĻšā§‡āϞāĻŽ āϚāĻžāĻ°ā§āϟ (Helm Charts) āĻ¸ā§āĻŸā§‹āϰ āĻ•āϰ⧇āĨ¤ āĻāϟāĻŋ āĻļ⧁āϧ⧁āĻŽāĻžāĻ¤ā§āϰ āχāĻŽā§‡āϜ āϜāĻŽāĻž āϰāĻžāϖ⧇ āύāĻž, āĻŦāϰāĻ‚ āχāĻŽā§‡āĻœā§‡āϰ āύāĻŋāϰāĻžāĻĒāĻ¤ā§āϤāĻž āĻāĻŦāĻ‚ āĻĒāĻžāϰāĻŽāĻŋāĻļāύ āĻŽā§āϝāĻžāύ⧇āϜāĻŽā§‡āĻ¨ā§āϟāĻ“ āύāĻŋāĻļā§āϚāĻŋāϤ āĻ•āϰ⧇āĨ¤


⧍. āϕ⧇āύ Harbor āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻŦ⧇āύ? (Key Features) ​

Harbor-āĻ āĻāĻŽāύ āĻ•āĻŋāϛ⧁ āĻ…ā§āϝāĻžāĻĄāĻ­āĻžāĻ¨ā§āϏāĻĄ āĻĢāĻŋāϚāĻžāϰ āφāϛ⧇ āϝāĻž āĻ¸ā§āĻŸā§āϝāĻžāĻ¨ā§āĻĄāĻžāĻ°ā§āĻĄ āĻĄāĻ•āĻžāϰ āϰ⧇āϜāĻŋāĻ¸ā§āĻŸā§āϰāĻŋāϤ⧇ (registry:2) āĻĨāĻžāϕ⧇ āύāĻž:

  • Web User Interface (UI): āχāϜāĻŋ-āϟ⧁-āχāωāϜ āĻ—ā§āϰāĻžāĻĢāĻŋāĻ•ā§āϝāĻžāϞ āχāĻ¨ā§āϟāĻžāϰāĻĢ⧇āϏ āϝāĻžāϰ āĻŽāĻžāĻ§ā§āϝāĻŽā§‡ āĻŦā§āϰāĻžāωāϜāĻžāϰ āĻĨ⧇āϕ⧇āχ āχāĻŽā§‡āϜ āĻāĻŦāĻ‚ āĻĒā§āϰ⧋āĻœā§‡āĻ•ā§āϟ āĻŽā§āϝāĻžāύ⧇āϜ āĻ•āϰāĻž āϝāĻžā§ŸāĨ¤
  • Vulnerability Scanning: āĻāϟāĻŋ āĻ…āĻŸā§‹āĻŽā§‡āϟāĻŋāĻ•āĻžāϞāĻŋ āχāĻŽā§‡āĻœā§‡āϰ āϭ⧇āϤāϰ āϏāĻŋāĻ•āĻŋāωāϰāĻŋāϟāĻŋ āĻŦāĻžāĻ— āĻŦāĻž CVE āĻ¸ā§āĻ•ā§āϝāĻžāύ āĻ•āϰ⧇ (Trivy āχāĻžā§āϜāĻŋāύ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇)āĨ¤
  • RBAC (Role-Based Access Control): āφāĻĒāύāĻŋ āĻ•āĻ¨ā§āĻŸā§āϰ⧋āϞ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āύ āϕ⧋āύ āχāωāϜāĻžāϰ āϕ⧋āύ āχāĻŽā§‡āĻœā§‡ āĻĒ⧁āĻļ āĻŦāĻž āĻĒ⧁āϞ āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŦ⧇āĨ¤
  • Content Signing (Notary): āχāĻŽā§‡āĻœā§‡āϰ āĻ…āϰāĻŋāϜāĻŋāύāĻžāϞāϤāĻž āύāĻŋāĻļā§āϚāĻŋāϤ āĻ•āϰāϤ⧇ āĻĄāĻŋāϜāĻŋāϟāĻžāϞāϞāĻŋ āϏāĻžāχāύ āĻ•āϰāĻž āϝāĻžā§ŸāĨ¤
  • Replication: āĻāĻ•āϟāĻŋ āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āχāĻŽā§‡āϜ āĻāĻ• āϰ⧇āϜāĻŋāĻ¸ā§āĻŸā§āϰāĻŋ āĻĨ⧇āϕ⧇ āĻ…āĻ¨ā§āϝ āϰ⧇āϜāĻŋāĻ¸ā§āĻŸā§āϰāĻŋāϤ⧇ āĻ…āĻŸā§‹āĻŽā§‡āϟāĻŋāĻ• āĻ•āĻĒāĻŋ āĻ•āϰāĻž āϝāĻžā§ŸāĨ¤

ā§Š. āĻĒā§āϰ⧋āĻœā§‡āĻ•ā§āϟ āĻāĻŦāĻ‚ āĻŽāĻžāĻ˛ā§āϟāĻŋ-āĻŸā§‡āĻ¨ā§āϝāĻžāĻ¨ā§āϏāĻŋ (Multi-tenancy) ​

Harbor-āĻ āχāĻŽā§‡āϜāϗ⧁āϞ⧋āϕ⧇ āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āύ Project-āĻāϰ āφāĻ¨ā§āĻĄāĻžāϰ⧇ āϰāĻžāĻ–āĻž āĻšā§ŸāĨ¤ āĻāϰ āĻĢāϞ⧇ āĻāĻ•āχ āϏāĻžāĻ°ā§āĻ­āĻžāϰ⧇ āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āύ āϟāĻŋāĻŽā§‡āϰ āχāĻŽā§‡āϜ āφāϞāĻžāĻĻāĻž āφāϞāĻžāĻĻāĻž āφāχāϏ⧋āϞ⧇āĻŸā§‡āĻĄ āĻ…āĻŦāĻ¸ā§āĻĨāĻžā§Ÿ āϰāĻžāĻ–āĻž āϏāĻŽā§āĻ­āĻŦāĨ¤

  • Public Projects: āϝ⧇ āϕ⧇āω āχāĻŽā§‡āϜ āĻĒ⧁āϞ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤
  • Private Projects: āĻļ⧁āϧ⧁āĻŽāĻžāĻ¤ā§āϰ āĻ…āύ⧁āĻŽā§‹āĻĻāĻŋāϤ āχāωāϜāĻžāϰāϰāĻžāχ āχāωāϜ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤

ā§Ē. āϏāĻŋāĻ•āĻŋāωāϰāĻŋāϟāĻŋ āĻāĻŦāĻ‚ āĻ…āĻĄāĻŋāϟ (Security & Audit) ​

  • CVE Detection: āχāĻŽā§‡āϜ āĻĒ⧁āĻļ āĻ•āϰāĻžāϰ āϏāĻžāĻĨ⧇ āϏāĻžāĻĨ⧇āχ Harbor āϏ⧇āϟāĻŋāϕ⧇ āĻ¸ā§āĻ•ā§āϝāĻžāύ āĻ•āϰ⧇ āĻāĻ•āϟāĻŋ āϰāĻŋāĻĒā§‹āĻ°ā§āϟ āĻĻā§‡ā§ŸāĨ¤ āϕ⧋āύ⧋ āχāĻŽā§‡āĻœā§‡ āϝāĻĻāĻŋ "Critical" āϰāĻŋāĻ¸ā§āĻ• āĻĨāĻžāϕ⧇, āϤāĻŦ⧇ āϏ⧇āϟāĻŋ āĻĒ⧁āϞ āĻ•āϰāĻž āĻŦā§āϞāĻ• āĻ•āϰ⧇ āĻĻ⧇āĻ“ā§ŸāĻž āϝāĻžā§ŸāĨ¤
  • Audit Logs: āϕ⧇ āĻ•āĻ–āύ āϕ⧋āύ āχāĻŽā§‡āĻœā§‡ āĻāĻ•ā§āϏ⧇āϏ āĻ•āϰ⧇āϛ⧇ āϤāĻžāϰ āĻĒā§‚āĻ°ā§āĻŖāĻžāĻ™ā§āĻ— āϞāĻ— Harbor-āĻ āϜāĻŽāĻž āĻĨāĻžāϕ⧇āĨ¤

ā§Ģ. āĻšāĻžāϰāĻŦāĻžāϰ āχāĻ¨ā§āϏāϟāϞ⧇āĻļāύ (Installation) ​

Harbor āϏāĻžāϧāĻžāϰāĻŖāϤ Docker Compose āĻŦāĻž Kubernetes (Helm) āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āχāĻ¨ā§āϏāϟāϞ āĻ•āϰāĻž āĻšā§ŸāĨ¤ āĻāϟāĻŋ āχāĻ¨ā§āϏāϟāϞ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āĻāĻ•āϟāĻŋ āĻĒā§āϰāĻŋ-āϰ⧇āϕ⧁āχāϜāĻŋāϟ āĻ¸ā§āĻ•ā§āϰāĻŋāĻĒā§āϟ āĻ“ āĻ•āύāĻĢāĻŋāĻ—āĻžāϰ⧇āĻļāύ āĻĢāĻžāχāϞ (harbor.yml) āĻĨāĻžāϕ⧇āĨ¤


ā§Ŧ. āχāĻŽā§‡āϜ āĻĒ⧁āĻļ āĻ•āϰāĻž (Pushing Image) ​

Harbor-āĻ āχāĻŽā§‡āϜ āĻĒ⧁āĻļ āĻ•āϰāĻžāϰ āĻĒāĻĻā§āϧāϤāĻŋ āĻ¸ā§āĻŸā§āϝāĻžāĻ¨ā§āĻĄāĻžāĻ°ā§āĻĄ āĻĄāĻ•āĻžāϰ āϰ⧇āϜāĻŋāĻ¸ā§āĻŸā§āϰāĻŋāϰ āĻŽāϤ⧋āχ:

bash
# ā§§. āϞāĻ—āχāύ āĻ•āϰāĻž
docker login harbor.example.com

# ⧍. āχāĻŽā§‡āϜ āĻŸā§āϝāĻžāĻ— āĻ•āϰāĻž
docker tag my-app:v1 harbor.example.com/my-project/my-app:v1

# ā§Š. āĻĒ⧁āĻļ āĻ•āϰāĻž
docker push harbor.example.com/my-project/my-app:v1

āϏāĻžāϰāϏāĻ‚āĻ•ā§āώ⧇āĻĒ (Summary) ​

āϝāĻĻāĻŋ āφāĻĒāύāĻžāϰ āĻ…āĻĢāĻŋāϏ āĻŦāĻž āĻĒā§āϰ⧋āĻœā§‡āĻ•ā§āĻŸā§‡ āĻ…āύ⧇āĻ• āĻŦ⧇āĻļāĻŋ āĻĄāĻ•āĻžāϰ āχāĻŽā§‡āϜ āĻāĻŦāĻ‚ āĻŽāĻžāĻ˛ā§āϟāĻŋ-āϟāĻŋāĻŽ āϕ⧋āϞāĻžāĻŦāϰ⧇āĻļāύ āĻĒā§āĻ°ā§Ÿā§‹āϜāύ āĻšā§Ÿ, āϤāĻŦ⧇ Harbor āĻšāϞ⧋ āĻāĻ• āĻ•āĻĨāĻžā§Ÿ āϏ⧇āϰāĻž āϏāϞāĻŋāωāĻļāύāĨ¤ āĻāϟāĻŋ āφāĻĒāύāĻžāϰ āχāĻŽā§‡āϜ āĻ¸ā§āĻŸā§‹āϰ⧇āϜāϕ⧇ āϝ⧇āĻŽāύ āϏāĻŋāĻ•āĻŋāωāϰ āĻ•āϰ⧇, āϤ⧇āĻŽāύāĻŋ āĻŽā§āϝāĻžāύ⧇āϜāĻŽā§‡āĻ¨ā§āϟāϕ⧇ āĻ•āϰ⧇ āϤ⧋āϞ⧇ āĻ…āĻ¤ā§āϝāĻ¨ā§āϤ āϏāĻšāϜāĨ¤


TIP

āĻĒā§āϰ⧋āĻĄāĻžāĻ•āĻļāύ āĻ•ā§āϞāĻžāĻ¸ā§āϟāĻžāϰ (āϝ⧇āĻŽāύ: Kubernetes) āĻŦā§āϝāĻŦāĻšāĻžāϰ⧇āϰ āϏāĻŽā§Ÿ Harbor-āϕ⧇ āχāĻŽā§‡āϜ āĻ¸ā§āĻŸā§‹āϰ āĻšāĻŋāϏ⧇āĻŦ⧇ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻž āĻāĻ•āϟāĻŋ āĻ¸ā§āĻŸā§āϝāĻžāĻ¨ā§āĻĄāĻžāĻ°ā§āĻĄ āĻĒā§āĻ°ā§āϝāĻžāĻ•āϟāĻŋāϏāĨ¤

Released under the MIT License.