Docker: Registry

Docker Registry adalah sebuah sistem yang bertugas untuk menyimpan Docker Image. Contoh Docker Registry yang biasa dipakai pengguna docker adalah Docker Hub yang bisa diakses di https://hub.docker.com. Alternative lain yang bisa digunakan adalah GitLab Container Registry.

Local Image Registry
Kita bisa membuat sejenis Docker Hub sendiri secara lokal maupun online. Keuntungannya yaitu
 * Hemat bandwith (jika Registry berada dalam satu jaringan). Docker tidak perlu pull dari Docker Hub atau layanan registry lain. Docker akan langsung pull image dari local registry
 * Private Repository. Docker Hub menerapkan kebijakan berbayar agar pengguna bisa mendapatkan unlimited private repository

Create Local Image Registry
Kita bisa menggunakan Image resmi dari docker https://hub.docker.com/_/registry.

Pull image  dari dockerhub docker pull registry

Atau bisa langsung jalankan perintah sudo docker run -d -p 5000:5000 --restart=always --name registry registry:latest

Push Image
Misalkan kita mau upload  ke local registry, maka kita harus pull dari docker hub terlebih dahulu docker pull alpine:latest

Beri tag baru, ubah  sesuai dengan ip address host docker tag alpine:latest :5000/alpine:latest

Kemudian jalankan perintah docker images Maka nanti akan keluar repository :5000/alpine

Sekarang push ke local registry docker push :5000/alpine:latest Jika berhasil, maka image tersebut sudah masuk ke local registry

Check Repositories
Cukup buka link berikut di browser http:// :5000/v2/_catalog Atau bisa pakai curl curl -X GET http:// :5000/v2/_catalog

Pull
Langkah awal yaitu bikin konfigurasi sudo nano /etc/docker/daemon.json lalu isi dengan {  "insecure-registries" : [" :5000"] }

Kemudian restart docker service sudo systemctl restart docker.service

Jalankan untuk pull docker pull :5000/alpine:latest

Useful Link

 * https://docs.docker.com/registry/ Dokumentasi
 * https://medium.com/@dataq/membuat-docker-private-registry-6efe534df4d5