6 Praktik Terbaik untuk menggunakan Kontainer

Mari kita bicara tentang beberapa praktik terbaik yang harus Anda ikuti saat menggunakan wadah.


Containerisasi secara luas digunakan di beberapa organisasi untuk menyebarkan aplikasi di dalam sebuah wadah. Wadah ini sangat populer karena sangat ringan. Untuk memanfaatkan yang terbaik dari wadah, Anda harus mengikuti beberapa praktik terbaik saat Anda bekerja dengannya.

Gunakan Gambar Dasar Yang Stabil

Berkat Docker, membuat gambar kontainer tidak pernah semudah ini.

Tentukan gambar dasar Anda, tambahkan perubahan Anda, dan bangun wadah Anda. Meskipun ini bagus untuk memulai, menggunakan gambar dasar default dapat menyebabkan gambar besar penuh dengan kerentanan keamanan. Selain itu, hindari menggunakan gambar docker tag “Terbaru” karena ada kemungkinan besar ada bug di dalamnya.

Debian atau Ubuntu digunakan sebagai gambar dasar oleh sebagian besar gambar Docker. Mereka sangat membantu dalam hal kompatibilitas dan on-boarding yang mudah, tetapi gambar dasar ini dapat menambahkan ratusan megabita overhead tambahan ke wadah Anda.

Misalnya, aplikasi Node.js dan Go yang sederhana, aplikasi hello world adalah sekitar 700 megabita. Aplikasi Anda mungkin hanya berukuran beberapa megabyte. Jadi, semua overhead tambahan ini adalah ruang yang terbuang dan tempat persembunyian yang bagus untuk kerentanan keamanan dan bug.

Jika bahasa atau tumpukan pemrograman Anda tidak memiliki opsi untuk gambar dasar kecil, Anda dapat membuat wadah menggunakan bahan mentah Alpine Linux sebagai titik awal. Ini juga memberi Anda kontrol penuh atas apa yang masuk ke dalam wadah Anda.

Simpan Gambar Wadah Lebih Kecil

Menggunakan gambar dasar yang lebih kecil mungkin merupakan cara termudah untuk mengurangi ukuran wadah Anda.

Peluang adalah bahasa atau tumpukan yang Anda gunakan memberikan gambar resmi yang jauh lebih kecil dari gambar default. Sebagai contoh, mari kita lihat wadah Node.js. Beralih dari simpul default: terbaru ke simpul: 14-alpine mengurangi ukuran gambar dasar kami hampir sepuluh kali lipat.

tagj terbaru nodejs - geekflare

vs. ….

nodejs alpine tag - geekflare

Dalam file Docker baru, wadah dimulai dengan node: alpine image, membuat direktori untuk kode, menginstal dependensi dengan NPM, dan akhirnya, memulai server Node.js. Dengan pembaruan ini, wadah yang dihasilkan hampir sepuluh kali lebih kecil.

Anda membuat wadah lebih ringan dengan menggunakan pola pembangun. Dengan bahasa interpretatif, kode sumber dikirim ke penerjemah, dan kemudian dieksekusi secara langsung. Tetapi dengan bahasa yang dikompilasi, kode sumber diubah menjadi kode yang dikompilasi sebelumnya.

Sekarang, dengan bahasa kompilasi, langkah kompilasi sering membutuhkan alat yang tidak diperlukan untuk menjalankan kode. Jadi ini berarti Anda dapat menghapus alat-alat ini dari wadah final sepenuhnya. Untuk melakukan ini, Anda dapat menggunakan pola pembangun. Kontainer pertama membangun kode, dan kemudian kode terkompilasi dikemas dalam wadah akhir tanpa semua kompiler dan alat yang diperlukan untuk membuat kode terkompilasi.

Menggunakan gambar dasar kecil dan pola pembangun adalah cara yang bagus untuk membuat wadah yang jauh lebih kecil tanpa banyak pekerjaan.

Tandai Gambar Kontainer Anda

Pemberian tag Docker adalah alat yang sangat kuat bagi kami dalam hal mengelola gambar kami. Ini membantu dalam mengelola berbagai versi gambar buruh pelabuhan. Di bawah ini adalah contoh membangun gambar buruh pelabuhan dengan nama tag v1.0.1

build buruh pelabuhan -t geekflare / ubuntu: v1.0.1

Sekarang, ada dua jenis tag yang digunakan: Stabil tag Unik tag.

Gunakan tag stabil untuk mempertahankan gambar dasar wadah. Hindari penggunaan tag ini untuk wadah penempatan karena tag ini akan sering menerima pembaruan, dan ini dapat menyebabkan ketidakkonsistenan dalam lingkungan produksi.

Gunakan tag unik untuk penerapan. Menggunakan tag unik, Anda dapat mengatur cluster produksi Anda ke banyak node dengan mudah. Itu menghindari ketidakkonsistenan, dan host tidak akan menarik versi gambar buruh pelabuhan lainnya.

Selain itu, sebagai praktik yang baik, Anda harus mengunci tag gambar yang digunakan dengan mengatur write-enable ke false. Ini membantu dalam tidak menghapus gambar yang digunakan dari registri karena kesalahan.

Keamanan Kontainer

Di bawah ini adalah poin mendasar untuk memastikan wadah aman.

  • Verifikasi keaslian perangkat lunak apa pun yang Anda instal dalam wadah Anda
  • Gunakan gambar buruh pelabuhan yang ditandatangani atau gambar dengan checksum yang valid.
  • Pastikan URL menggunakan HTTPS jika Anda menggunakan repositori pihak ketiga.
  • Sertakan kunci GPG yang tepat sebelum menggunakan manajer paket Anda untuk memperbarui paket
  • Jangan pernah menjalankan aplikasi Anda sebagai root. Anda harus selalu menggunakan arahan pengguna di dalam dockerfile untuk memastikan bahwa Anda meninggalkan hak istimewa pengguna Anda.
  • Jangan jalankan SSH di dalam wadah Anda.
  • Jadikan sistem file hanya-baca.
  • Gunakan Namespace untuk memecah cluster Anda.

Benchmark Docker telah disediakan oleh Pusat Keamanan Internet (CIS) untuk mengevaluasi keamanan wadah buruh pelabuhan. Mereka telah menyediakan skrip open-source bernama Bangku Docker untuk Keamanan, yang dapat Anda jalankan untuk memeriksa seberapa aman wadah buruh pelabuhan.

Satu Aplikasi Per Kontainer

Mesin virtual cukup bagus dalam menjalankan banyak hal secara paralel, tetapi ketika menyangkut kontainer, Anda harus menjalankan satu aplikasi di dalam satu wadah. Misalnya, jika Anda menjalankan aplikasi MEAN di lingkungan kemas, maka ia harus memiliki satu wadah untuk MongoDB, satu wadah untuk Express.js, satu wadah untuk Angular, dan satu wadah untuk Node.js.

Bahkan kontainer dapat menjalankan beberapa aplikasi secara paralel di dalamnya, tetapi kemudian Anda dapat memanfaatkan model kontainer. Di bawah ini adalah representasi yang benar dan salah menjalankan aplikasi dalam wadah.

aplikasi tunggal satu wadah - geekflare

Wadah dirancang untuk memiliki siklus hidup yang mirip dengan aplikasi yang dijalankannya. Ketika wadah mulai, aplikasi akan mulai. Ketika sebuah wadah berhenti, aplikasi itu juga berhenti.

Jalankan Stateless Containers

Wadah pada dasarnya dirancang untuk menjadi tanpa kewarganegaraan. Dalam hal ini, data persisten yang berisi informasi tentang keadaan wadah disimpan di luar wadah. File dapat disimpan di penyimpanan objek seperti penyimpanan cloud, untuk menyimpan informasi sesi pengguna Anda dapat menggunakan database latensi rendah seperti Redis dan Anda juga dapat melampirkan disk eksternal untuk penyimpanan tingkat blok..

Dengan menjaga penyimpanan di luar wadah, Anda dapat dengan mudah mematikan atau menghancurkan wadah tanpa takut kehilangan data.

Jika Anda menggunakan wadah stateless, sangat mudah untuk bermigrasi atau menskala sesuai kebutuhan bisnis.

Kesimpulan

Di atas adalah beberapa praktik paling penting yang harus diikuti ketika bekerja dengan wadah jika Anda sedang membangun lingkungan Produksi Docker lalu periksa bagaimana cara mengamankannya.

TAGS:

  • Buruh pelabuhan

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map