Lewati ke konten utama

Private Registry inside PaaS

Docker solution dirancang untuk distribusi aplikasi yang nyaman menggunakan template yang cepat dan ringan, yang memungkinkan proyek Anda dijalankan hampir di mana saja. Oleh karena itu, ini adalah teknologi yang sempurna bagi para pengembang dan sysadmin yang mencari cara untuk mempercepat alur kerja pengiriman aplikasi dan menghindari masalah penyesuaian yang berkelanjutan.

Untuk menangani Docker image Anda sendiri, registry yang sesuai harus ada. Sebagian besar solusi yang di-docker disimpan di registri publik agar siapa saja dapat menggunakannya. Namun, terkadang menjadi perlu untuk menyembunyikan konten repositori Anda dari dunia luar, misalnya jika mengandung kode milik atau informasi rahasia. Untuk tujuan ini, Anda bisa membuat registry privat yang terisolasi.

Jadi, mari mencari tahu bagaimana mendapatkannya di platform dengan beberapa langkah berikut dalam hitungan menit:

Selanjutnya, Anda akan dapat dengan mudah mendeposisi image yang ditambahkan dari private registry Anda ke platform.

Deploy Private Registry

Template dasar untuk registry privat dapat ditemukan di antara images open-source lainnya di Docker Hub. Dengan demikian, Anda dapat dengan nyaman menghostingnya di dalam Dewacloud yang diinginkan dengan membuat custom container yang sesuai:

1. Masuk ke akun PaaS Anda dan klik tombol New Environment di panel atas.

new environment with Docker image

Di wizard topologi yang terbuka, beralih ke tab Docker dan klik Select Image.

2. Di sini, gunakan Search untuk mencari image registry dan tambahkan.

registry Docker image
tip

Anda dapat memilih tag yang diperlukan untuk Docker image Anda di bagian atas frame ini atau selama langkah berikutnya.

Klik Next untuk melanjutkan.

3. Sediakan semua configurations lainnya untuk environment (batas disk, nama, region, dll.) sesuai kebutuhan Anda.

configure environment

Catatan: Instruksi di bawah ini ditulis untuk versi registry terbaru (yaitu mulai dari tag 2.x dan lebih tinggi). Untuk registri yang tidak didukung lagi, konfigurasi & alur interaksi mungkin berbeda dalam detail.

Klik Create dan tunggu sebentar agar environment terkonfigurasi.

4. Sekarang, Anda perlu mengonfigurasi entry point untuk akses eksternal. Kami akan membuatnya, memanfaatkan fitur endpoints platform, untuk mengekspos port 5000 dari container.

catatan

Sebagai alternatif, Anda dapat melampirkan dan bekerja melalui public IP (opsi berbayar) tanpa konfigurasi tambahan.

add endpoint

Klik tombol Settings di sebelah environment Anda, navigasikan ke bagian Endpoints, dan Tambahkan endpoint baru. Dalam frame yang terbuka, tentukan parameter yang diinginkan, menetapkan nomor Private Port 5000 dalam bidang dengan nama yang sama.

Hasilnya, Anda harus menerima catatan serupa dengan yang ditunjukkan dalam gambar di atas. Sekarang, Anda dapat mulai mengisi registry Anda dengan Docker images.

Add Image to Registry

Untuk menunjukkan bagaimana template Docker dapat ditambahkan ke registry Anda, kami akan mengambil image yang sudah ada dari Hub registry pusat dan memindahkannya ke repositori privat kami (namun, Anda dapat menggunakan template lokal Anda sendiri).

Namun, sebelum itu, Anda perlu menerapkan beberapa penyesuaian pada konfigurasi mesin lokal Anda agar dapat mengoperasikannya dengan benar.

1. Untuk memulai, install Docker CE (jika Anda belum melakukannya sebelumnya) sesuai dengan panduan yang ditautkan dari situs web resmi.

catatan

Pastikan versi daemon yang terinstal adalah 1.6.0 atau lebih tinggi (karena penggunaan registri tidak kompatibel dengan versi sebelumnya). Versi Docker daemon sebenarnya dapat diperiksa dengan menjalankan perintah berikut di terminal Anda: docker -v

check Docker Engine version

2. Selanjutnya, pilih image yang diinginkan di Docker Hub, dapatkan menggunakan perintah pull dan tag template yang diterima sehingga mengarah ke private registry Anda (atau, dalam penggunaan template lokal, lewati bagian perintah pertama).

docker pull  {image} && docker tag  {image}  {entry_point}/{repository} 

di mana:

  • {image} - nama dari template Docker yang ingin Anda tarik dan tag (misalnya, jelastic/haproxy)

  • {entry_point} - private registry entry point, yaitu endpoint (yang dibuat di akhir bagian sebelumnya) atau alamat IP eksternal. Kami akan menggunakan yang pertama:

endpoint URL
  • {repository} - nama dari repositori di private registry remote Anda (misalnya, haproxy) tempat image akan disimpan
docker pull command

3. Sekarang, Anda harus memperhatikan satu detail lagi - saat menggunakan private registry remote, diperlukan untuk mengamankan interaksi dengan itu dengan menggunakan TLS. Untuk itu, Anda perlu menempatkan SSL certificate files yang sesuai (yaitu server key dan domain certificate), yang dikeluarkan oleh CA yang dikenal, ke registry Anda.

tip

Sertifikat self-signed juga dapat diterapkan - dalam hal ini, Anda harus secara manual menginstruksikan Docker daemon untuk memercayainya.

Namun, untuk tujuan pengujian, Anda dapat menerapkan konfigurasi yang relatif lebih sederhana, yang memungkinkan melewati persyaratan ini - jalankan registry Anda dalam insecure mode, sehingga semua komunikasi akan dilakukan melalui HTTP biasa (meskipun demikian, sangat tidak direkomendasikan dalam penggunaan produksi).

Untuk itu, tambahkan baris berikut ke file konfigurasi /etc/default/docker dari daemon Anda (atau yang serupa sesuai dengan distribusi OS Anda), misalnya menggunakan editor vim dengan izin sudo:

DOCKER_OPTS="--insecure-registry  {entry_point}" 
configure insecure registry

Jangan lupa untuk menyimpan perubahan.

Catatan: Dalam kasus menggunakan self-signed certificates atau opsi insecure, konfigurasi tambahan yang sama akan diperlukan untuk diterapkan pada setiap Docker daemon, yang perlu mengakses registry Anda.

4. Sekarang, Anda dapat me-restart Docker daemon lokal Anda dan mem-push image yang telah disiapkan ke repositori remote Anda:

sudo service docker restart docker push  {entry_point}/{repository}
docker restart push commands

Itu saja! Dalam waktu singkat, image Anda akan diunggah ke registry (waktu yang tepat tergantung pada ukuran image dan kecepatan koneksi internet) dan akan tersedia untuk digunakan di seluruh Internet.

Sebagai hasilnya, Anda dapat dengan mudah mendeploy-nya dalam platform dengan cara yang sama seperti yang telah kita lakukan di awal instruksi.

Baca Juga