Kalau kamu lagi ngulik Kubernetes, CI/CD pipeline, atau main-main sama Docker, pasti pernah mikir, “Gimana sih cara paling aman dan praktis buat simpan image Docker kita sendiri?” Nah, di sinilah Alibaba Cloud Container Registry (ACR). Buat kita para developer, sysadmin, atau DevOps engineer, ACR itu ibarat gudang Docker image pribadi yang scalable, aman, dan bisa diakses global.
Alih-alih ribet urus registry manual, ACR bikin hidup kita lebih gampang. Di artikel ini, gue bakal bahas tuntas tentang apa itu Alibaba Cloud Container Registry, kenapa penting buat kita yang kerja bareng Docker, dan gimana cara pakainya biar langsung bisa kamu integrasiin ke workflow kamu.
Table of Contents
Prerequisites
Sebelum lanjut, pastikan kamu udah punya:
- Akun Alibaba Cloud aktif
- Docker versi terbaru udah ter-install
- Basic knowledge soal image Docker dan perintah dasar CLI Docker
- (Opsional) CI/CD pipeline kayak GitLab CI, Jenkins, atau GitHub Actions
Kenalan Sama Alibaba Cloud Container Registry
Alibaba Cloud Container Registry adalah layanan managed service dari Alibaba Cloud buat nyimpen dan distribusi image Docker secara private maupun public. Sama kayak Docker Hub atau GitHub Container Registry, tapi lebih cocok buat kamu yang deploy di environment Alibaba Cloud atau cari latency rendah di region Asia, khususnya Indonesia.
Fitur unggulan dari ACR:
- Private registry: Buat simpan image internal biar gak bocor keluar.
- Public registry: Bisa share image ke publik kalau kamu bikin open source project.
- Geo-replication: Deploy image kamu lebih cepat dari region manapun.
- Image scanning: Built-in security buat scanning vulnerabilities dari image kamu.
- Helm chart repository: Gak cuma image Docker, ACR juga support Helm chart.
Perbandingan Container Registry Personal vs Enterprise Edition
Buat kamu yang masih bingung mau pilih versi Personal Edition atau langsung loncat ke Enterprise Edition di Alibaba Cloud Container Registry, yuk kita bahas secara santai tapi detail. Perbandingan ini penting banget terutama kalau kamu udah mulai scaling Docker image secara masif atau butuh fitur-fitur tambahan untuk keamanan dan distribusi.
Kategori | Fitur | Personal Edition | Enterprise Edition |
---|---|---|---|
Artifact Management | Artifact Type | Container Images | Container Images, Helm Charts, dan OCI Artifacts |
Automatic Cleanup of Artifacts | ❌ | ✅ | |
Image Build | ✅ | ✅ (Enhanced) | |
Customized Domain | ❌ | ✅ | |
Artifact Distribution | SLA Guarantee | ❌ | ✅ |
Acceleration of Synchronization Across All Regions | ❌ | ✅ | |
Acceleration of Large-Scale Distribution | ❌ | ✅ | |
On-Demand Loading of Large Images | ❌ | ✅ | |
Security of Cloud-Native Services | Access Control | ❌ | ✅ |
Image Scan | ✅ | ✅ | |
Image Signature | ❌ | ✅ | |
DevOps | Cloud-Native Delivery Chain | ❌ | ✅ |
Penjelasan Singkat
- Personal Edition cocok buat individu atau tim kecil yang ingin repository Docker image private/public secara cepat tanpa biaya besar.
- Enterprise Edition dirancang untuk kebutuhan skala besar: kamu bakal dapat SLA, kecepatan distribusi, integrasi dengan pipeline DevOps, dan keamanan kelas enterprise (image signature, access control, dan domain kustom).
Rekomendasi Buat DevOps
Kalau kamu developer solo atau tim kecil yang hanya push/pull Docker image, cukup pakai Personal Edition dulu. Tapi kalau kamu sudah:
- Gunakan CI/CD pipeline seperti Jenkins, GitLab CI atau ArgoCD,
- Distribusi container ke banyak region,
- Butuh keamanan lebih (misalnya access control dan signature),
- Atau kamu di ranah production skala besar,
… maka Enterprise Edition sangat layak dipertimbangkan. Selain karena fitur yang lengkap, juga karena kamu bisa dapat Helm charts dan OCI artifacts dalam satu platform registry.
1. Setup Container Registry
Langkah-langkah setup ACR dan upload image ke sana sebenarnya mirip banget sama registry lain, cuma beda di endpoint dan otentikasinya.
pada tutorial ini membuat Alibaba Cloud container registry personal.
untuk membuat container registry di alibaba cloud sangat mudah, jika kamu baru membuat akun alibaba cloud, kamu perlu aktivasi RAM “Resource Access Management” terlebih dahulu.
Login ke alibaba cloud console, kemudian search “cari” container registry, maka kamu akan masuk ke tampilan Instance Container Registry seperti gambar dibawah.
Pilih personal edition dengan klik tombol plus +.
Kalau kamu baru pertama kali membuat ACR maka perlu membuat RAM “Resource Access Management” untuk container registry, ini berlaku untuk versi personal maupun enterprise.
1.1 Grant Resource Access Management Container Registry
Setelah kamu memilih versi personal container registry, maka secara otomasis kamu di arahkan untuk membuat dan memberikan permission pada Resource Access Management “RAM” seperti gambar dibawah.
Klik tombol Authorize dan nanti secara otomatis RAM untuk container registry kamu aktif seperti gambar dibawah.
1.2 Membuat Container Registry
Ya, setelah kamu grant access RAM untuk container registry, selanjutnya adalah membuat Container registry dengan cara klik tombol plus di dashboard instance Container Registry.
- Pilih Region, misalnya Indonesia (Jakarta)
- Centang i have read and agreed to Container Registry dan centang juga I am aware and Understand that Container Registry Personal Edition is not guaranteed by an SLA and has limits, and Container Registry Personal Edition cannot be used for production.
- dan klik tombol Create Now.
Jika sudah selesai, kamu akan diarahkan ke dashboard container registry.
Agar kamu bisa menggunakan container registry alibaba cloud, kamu perlu setup reset password biar pada saat melakukan push atau pull docker image berjalan dengan lancar.
Klik tombol Reset Docker Login Password
Masukkan Kata sandi dan juga Konfirmasi Kata sandi, lalu klik tombol Confirm seperti gambar berikut.
1.3 Buat Docker Repository
Setelah kamu sudah setup kata sandi, selanjutnya adalah membuat repository dengan cara klik Repository pada sidebar menu yang berada di sebelah kiri seperti gambar dibawah.
Klik tombol Create Repository untuk buat baru personal private repository.
Langkah pertama adalah membuat personal registry dengan private repository sebagai berikut:
- Buat Namespace kamu, misalnya: dika-dev
- Isi Nama Repository, misalnya: acr-jkt
- Pilih tipe repository, disini saya menggunakan Private repository.
- Lalu isi Summary, misalnya : AlibabaCloudContainerRegistry
- Kemudian klik tombol Next. seperti contoh tampilan gambar dibawah ini.
Langkah kedua adalah integrasi Source Code kamu ke personal container registry:
- Pilih Local repository jika kamu tidak ingin integrasi ke Source Code Management seperti Codeup, Github, Bitbutcket maupun Gitlab.
- Terakhir klik tombol Create Repositry seperti contoh tampilan berikut.
Nah, kamu sudah berhasil membuat Container Registry beserta dengan repository untuk kamu menyimpan docker image di alibaba cloud.
Setelah berhasil membuat repository, kamu bisa menggunakan public endpoint untuk push, maupun pull docker image ke docker container registry, Integrasi dengan CI/CD maupun kubernetes di alibaba cloud dan ingin mengintegrasikan nya ke ACR, kamu bisa gunakan VPC Endpoint URL pada dashboard repository kamu.
2. Menggunakan Alibaba Cloud Container Registry
Tahapan ini adalah cara agar kamu bisa testing langsung Alibaba Cloud Container Registry.
Pastikan sudah instal docker di laptop/komputer ataupun di server kamu dan jika belum kamu bisa instal docker di linux pada panduan link berikut : Install Docker di berbagai distro Linux
2.1 Autentikasi Login Container Registry
Cara autentikasi login ke docker container registry di ACR sebagai berikut:
Jalankan perintah dibawah untuk login ke docker registry.
docker login [email protected] PUBLIC_ENDPOINT_URL.ap-southeast-5.personal.cr.aliyuncs.com
Ganti PUBLIC_ENDPOINT_URL dengan public endpoint kamu lalu, masukan Kata sandi ACR yang sudah kamu buat lalu tekan enter.
Output result:
Password:
WARNING! Your password will be stored unencrypted in /home/drp/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credential-stores
Yeah, kamu sudah berhasil login ke docker registry alibaba cloud.
2.2 Pull dan Push Docker Image
Langkah selanjutnya mencoba push dan pull ke docker container registry alibaba cloud dengan cara berikut:
Pull docker image, misalnya: nginx
docker pull nginx:latest
Output result:
latest: Pulling from library/nginx
254e724d7786: Already exists
913115292750: Pull complete
3e544d53ce49: Pull complete
4f21ed9ac0c0: Pull complete
d38f2ef2d6f2: Pull complete
40a6e9f4e456: Pull complete
d3dc5ec71e9d: Pull complete
Digest: sha256:c15da6c91de8d2f436196f3a768483ad32c258ed4e1beb3d367a27ed67253e66
Status: Downloaded newer image for nginx:latest
docker.io/library/nginx:latest
Tag docker image nginx ke public endpoint ACR kamu, seperti contoh perintah berikut:
docker tag nginx:latest PUBLIC_ENDPOINT_URL.ap-southeast-5.personal.cr.aliyuncs.com/NAMESPACE/NAMA_REPOSITORY:nginx
Ganti PUBLIC_ENDPOINT_URL dengan public endpoint, dan NAMESPACE serta NAMA_REPOSITORY yang sudah kamu buat sebelumnya.
Terakhir coba push docker image yang sudah kamu tag dengan cara menjalankan perintah berikut
docker push PUBLIC_ENDPOINT_URL.ap-southeast-5.personal.cr.aliyuncs.com/NAMESPACE/NAMA_REPOSITORY:nginx
Output result:
The push refers to repository [PUBLIC_ENDPOINT_URL.ap-southeast-5.personal.cr.aliyuncs.com/NAMESPACE/NAMA_REPOSITORY]
8030dd26ec5d: Pushed
d84233433437: Pushed
f8455d4eb3ff: Pushed
286733b13b0f: Pushed
46a24b5c31d8: Pushed
84accda66bf0: Pushed
6c4c763d22d0: Pushed
nginx: digest: sha256:056c8ad1921514a2fc810a792b5bd18a02d003a99d6b716508bf11bc98c413c3 size: 177
Kamu bisa periksa docker image yang sudah kamu push dengan cara klik repository kamu, lalu klik Tags seperti contoh gambar ini.
Mencoba pull docker image dari ACR dengan menjalankan perintah dibawah:
docker pull PUBLIC_ENDPOINT_URL.ap-southeast-5.personal.cr.aliyuncs.com/NAMESPACE/NAMA_REPOSITORY:nginx
Selamat, kamu sudah bisa melakukan push dan pull image docker ke ACR alibaba.
3. Integrasi ACR di CI/CD dan Kubernetes
Kalau kamu udah familiar sama CI/CD tools seperti GitLab CI/CD atau Jenkins, kamu bisa langsung integrasiin ACR sebagai private registry.
Contoh config di GitLab CI:
image: docker:latest
services:
- docker:dind
variables:
DOCKER_REGISTRY: PUBLIC_ENDPOINT_URL.ap-southeast-5.personal.cr.aliyuncs.com
stages:
- build
- deploy
build_image:
stage: build
script:
- docker login -u "$REGISTRY_USERNAME" -p "$REGISTRY_PASSWORD" $DOCKER_REGISTRY
- docker build -t $DOCKER_REGISTRY/my-namespace/myapp:latest .
- docker push $DOCKER_REGISTRY/my-namespace/myapp:latest
Sedangkan untuk Kubernetes, tinggal sesuaikan saja image pull secret ke ACR:
apiVersion: v1
kind: Secret
metadata:
name: acr-secret
namespace: default
type: kubernetes.io/dockerconfigjson
data:
.dockerconfigjson: <base64 dari ~/.docker/config.json>
4. Best Practice Keamanan dan Efisiensi Docker Registry
- Gunakan multi-stage Dockerfile untuk memperkecil size image.
- Aktifkan image vulnerability scan di ACR dashboard secara otomatis.
- Pisahkan namespace per project atau per environment (dev, staging, production).
- Aktifkan lifecycle policy untuk hapus image lama yang gak dipakai lagi.
- Untuk akses tim, gunakan RAM (Resource Access Management) dan batasi siapa saja yang boleh push/pull.
Kesimpulan
Alibaba Cloud Container Registry adalah container registry alternatif buat kamu yang butuh Docker registry cepat, aman, dan scalable, apalagi kalau infrastruktur/server kamu di Jakarta. Gak perlu khawatir soal security, latency, atau integrasi—semua udah siap pakai.
Buat kamu seorang DevOps, Sysadmin atau develop microservices yang sering pakai Docker, cobain Alibaba Cloud Container Registry “ACR”.
Referensi: