คืออะไร Container Registry
ที่เก็บอิมเมจ Docker
Container Registry
Container Registry คือพื้นที่จัดเก็บส่วนกลางสำหรับ Docker images และ artifacts อื่นๆ ที่เข้ากันได้กับ OCI ให้การควบคุมเวอร์ชัน การควบคุมการเข้าถึง และการกระจาย container
ประเภท Registry
| ประเภท | ตัวอย่าง | |--------|---------| | สาธารณะ | Docker Hub, GitHub Container Registry | | คลาวด์ | AWS ECR, Google GCR, Azure ACR | | Self-hosted | Harbor, Nexus, JFrog Artifactory | | GitLab | GitLab Container Registry |
ฟีเจอร์หลัก
- การจัดเก็บ Image — Repository ส่วนกลาง
- การควบคุมเวอร์ชัน — แท็กและ digest สำหรับการระบุ
- การควบคุมการเข้าถึง — RBAC และนโยบายความปลอดภัย
- การสแกนช่องโหว่ — การรวมกับ Trivy, Clair
- การจำลอง — Mirror ข้ามภูมิภาค
การทำงานกับ Registry
| คำสั่ง | คำอธิบาย | |--------|----------| | docker login | ยืนยันตัวตนกับ registry | | docker push | อัปโหลด image | | docker pull | ดาวน์โหลด image | | docker tag | สร้างแท็ก |
แนวทางปฏิบัติที่ดีที่สุด
- ใช้แท็กที่ไม่เปลี่ยนแปลง (ไม่ใช่ latest)
- สแกน image เพื่อหาช่องโหว่
- เซ็น image (Cosign, Notary)
- ตั้งค่านโยบายการล้าง image เก่า
- เปิดใช้งาน garbage collection
การรวม CI/CD
# ตัวอย่าง GitLab CI
build:
script:
- docker build -t $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA .
- docker push $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA