Container Registry DigitalOcean memberi Anda ruang pribadi di cloud untuk menyimpan dan mendistribusikan gambar Docker Anda. Selain menawarkan repositori gambar, layanan ini juga terintegrasi dengan layanan DigitalOcean lainnya. Anda dapat men-deploy gambar yang disimpan ke App Platform dan menggunakannya dengan cluster Kubernetes Terkelola.
Manfaat dan Fitur
Container Registry adalah pesaing Docker Hub yang memungkinkan Anda menyimpan gambar Docker di dalam akun DigitalOcean Anda. Ini ideal ketika Anda akan mengakses gambar-gambar itu dengan fitur DigitalOcean lainnya. Anda tidak perlu menyiapkan akun Docker Hub berbayar terpisah untuk gambar pribadi aplikasi Anda.
Data yang disimpan di Container Registry secara otomatis dimuat seimbang di beberapa wilayah pusat data DigitalOcean. Ini mempercepat pengambilan gambar saat Anda memulai container dan menariknya ke mesin Anda. Tidak seperti fitur DigitalOcean lainnya, Anda tidak dapat memilih pusat data Container Registry secara manual.
Implementasi registri DigitalOcean sesuai dengan OCI sehingga Anda dapat berinteraksi dengannya menggunakan alat ekosistem yang sudah dikenal. Perintah seperti docker push
dan docker pull
akan "hanya berfungsi" setelah Anda menambahkan kredensial registri Anda ke CLI Anda. Demikian pula, orkestra seperti Kubernetes tidak akan kesulitan mereferensikan gambar di registri Anda.
Membuat Registri
Container Registry tersedia secara gratis tetapi paket gratisnya memang datang dengan beberapa batasan yang parah. Anda mendapatkan satu repositori gambar (nama gambar tingkat atas), penyimpanan 500MB, dan batas transfer data keluar 500MB – memadai untuk mengevaluasi layanan tetapi mungkin tidak cocok untuk penggunaan jangka panjang. Paket Dasar $5/bln memberi Anda lima repositori dan 5GB sedangkan versi $20/Profesional dilengkapi dengan repositori tak terbatas dan penyimpanan 100GB. Kelebihan penyimpanan ditagih sebesar $0,02/GB.
Buat registri dengan masuk ke panel kontrol DigitalOcean dan klik tautan “Container Registry” di bilah sisi kiri. Beri nama registri baru Anda dan pilih paket penyimpanan Anda. Nama harus unik secara global di setiap registri DigitalOcean sehingga pilihan pertama Anda mungkin tidak tersedia. Itu harus terdiri dari hingga 63 karakter termasuk huruf, angka, dan tanda hubung.
Diperlukan beberapa detik untuk membuat registri baru. Anda akan dibawa ke layar dasbor registri setelah proses selesai.
Menghubungkan CLI Docker Anda
Langkah Anda selanjutnya adalah menghubungkan Docker CLI Anda ke registri. Anda perlu memberi Docker kredensial registri Anda sehingga dapat mendorong dan menarik gambar menggunakan akun Anda. Ada tiga cara berbeda untuk mencapai ini.
Menggunakan Doctl
Utilitas baris perintah resmi DigitalOcean, Doctl, menyertakan skrip praktis yang mengonfigurasi klien Docker Anda untuk bekerja dengan Container Registry Anda.
Anda harus menginstal dan mengautentikasi Doctl ke akun DigitalOcean Anda untuk menggunakan metode ini. Jalankan perintah berikut untuk menyiapkan integrasi:
doctl registry login
Menggunakan Token API DigitalOcean
Token API DigitalOcean dapat digunakan untuk mengautentikasi ke Container Registries. Hasilkan token dengan mengklik tautan "API" di bagian bawah bilah sisi kiri di akun DigitalOcean Anda. Klik “Generate New Token”, beri nama, dan tekan “Generate Token” pada popup berikut.
Nilai token akan ditampilkan. Catat ini karena Anda tidak akan dapat mengambilnya nanti. Sekarang kembali ke CLI Anda dan gunakan docker login
perintah untuk terhubung ke registri Anda:
docker login registry.digitalocean.com
Anda akan diminta untuk memberikan nama pengguna dan kata sandi. Gunakan nilai token API yang Anda buat untuk keduanya bidang. Docker sekarang dapat berinteraksi dengan registry DigitalOcean milik akun Anda.
Mengunduh File Kredensial Docker
Jika Anda tidak ingin membuat kunci API atau menggunakan Doctl, buka halaman dasbor Container Registry Anda dan klik tombol "Tindakan" biru di kanan atas. Pilih “Unduh Kredensial Docker” dari menu.
File ini adalah config.json
yang kompatibel dengan Docker yang mencakup kredensial untuk registri Anda. Anda dapat menggabungkannya dengan ~/.docker/config.json
utama Anda file atau gunakan --config
tandai dengan docker
perintah:
docker --config ~/downloaded-config.json pull registry.digitalocean.com/<your-registry-name>/example-image:latest
Menggunakan Docker untuk Mendorong dan Menarik Gambar
Dengan Docker yang dikonfigurasi dengan benar, Anda sekarang dapat menggunakan CLI untuk mendorong dan menarik gambar dengan Container Registry Anda. Gambar harus diberi tag dalam format berikut:
registry.digitalocean.com/<your-registry-name>/example-image:latest
Berikut adalah contoh sederhana untuk mendorong salinan gambar yang ada ke registri Anda:
docker pull httpd:latest docker tag httpd:latest registry.digitalocean.com/<your-registry-name>/httpd:latest docker push registry.digitalocean.com/<your-registry-name>/httpd:latest
Buka dasbor registri Anda di panel kontrol DigitalOcean. Gambar Anda yang baru didorong akan muncul di dalam registri Anda. Anda dapat mengklik gambar untuk melihat tag yang tersedia. Hapus tag tertentu, atau semua tag yang tersedia untuk gambar, dengan mengeklik ikon tiga titik di paling kanan dan memilih dari menu.
Pengumpulan Sampah
Menghapus gambar dari registri mungkin meninggalkan lapisan berlebihan yang tidak lagi digunakan oleh manifes yang tersisa. Lapisan ini akan tetap diperhitungkan dalam biaya penyimpanan Anda.
DigitalOcean menyediakan fasilitas pengumpulan sampah untuk menghapus lapisan dan manifes yatim piatu. Anda akan melihat ubin di layar dasbor registri Anda saat pengumpulan sampah dapat mengosongkan ruang penyimpanan. Klik “Kosongkan sampah” untuk memulai proses.
Anda akan melihat dialog sembulan yang memungkinkan Anda memilih apakah akan menghapus manifes yang tidak ditandai sebagai bagian dari pembersihan. Ini adalah gambar valid yang tidak memiliki tag yang ditetapkan sehingga hanya dapat dirujuk dengan ID lengkapnya, seperti registry.digitalocean.com/<your-registry-name>/example-image:a1bc23
. Menghapus manifes ini biasanya diinginkan kecuali Anda sengaja menyimpannya.
Pengumpulan Sampah menempatkan registri Anda ke status hanya-baca sampai semua lapisan yang tidak digunakan telah dihapus. Dorongan baru akan ditolak selama pembersihan. Pengumpulan tidak dimulai hingga penulisan yang ada selesai, jadi mungkin ada sedikit penundaan setelah Anda memulai proses. Kemajuan ditampilkan di halaman dasbor registri Anda di panel kontrol.
DigitalOcean tidak menawarkan pengumpulan sampah otomatis. Namun dimungkinkan untuk menjalankan proses menggunakan Doctl dan DigitalOcean API sehingga Anda dapat menulis skrip Anda sendiri dan menjadwalkannya dengan cron
.
Kesimpulan
Container Registry DigitalOcean memberi Anda cara mudah untuk menyimpan gambar Docker. Anda mengautentikasi ke registri menggunakan token API DigitalOcean yang ada. Anda harus ingat bahwa token API memberikan akses total ke akun Anda – tidak terbatas pada akses registri.
Apakah Anda harus menggunakan Container Registry demi Docker Hub tergantung pada apa yang akan Anda lakukan dengan gambar. Jika Anda akan menerapkannya ke DigitalOcean, masuk akal untuk menempatkan gambar Anda di samping infrastruktur Anda, memaksimalkan kinerja. Docker Hub memiliki manfaat di area lain, seperti pembuatan ulang gambar otomatis dan pemindaian kerentanan yang dapat dengan cepat menandai masalah keamanan. Layanan DigitalOcean tidak memiliki keduanya, melainkan berfokus pada penyimpanan gambar yang murni dan sederhana.