GNU/Linux >> Belajar Linux >  >> Panels >> Docker

Bagaimana Mengelola Kontainer Docker? Praktik terbaik

Docker telah merevolusi pengembangan perangkat lunak dengan penggunaan container dan merupakan platform container terdepan saat ini.

Wadah menghapus banyak proses yang membosankan dari pengembangan perangkat lunak. Maksimalkan potensi Docker dengan menerapkan praktik terbaik untuk meningkatkan keamanan, kecepatan, dan efisiensi.

Dalam tutorial ini, kami membahas praktik terbaik pengelolaan container Docker.

Apa itu Docker?

Docker adalah utilitas sumber terbuka yang menghilangkan tugas berulang dalam pengembangan perangkat lunak.

Ini memungkinkan pengembang untuk membuat wadah, lingkungan yang terkendali untuk menjalankan suatu proses.

Wadah menggunakan gambar, replika dari lingkungan operasi tertentu. Meskipun terdengar seperti virtualisasi server, wadah Docker disederhanakan untuk menjalankan perintah dengan sumber daya minimal dengan hanya memuat pustaka dan dependensi yang diperlukan.

Praktik Terbaik Untuk Mengelola Kontainer Docker

Mengelola Efisiensi Kontainer Docker Dengan Perencanaan yang Tepat

Saat memetakan proses perangkat lunak Anda, sebaiknya rencanakan sistem container untuk memastikan Anda memenuhi tugas dengan jumlah pekerjaan dan sumber daya paling sedikit.

Sebelum membangun dan menjalankan lingkungan virtual ini, pertimbangkan bagaimana Anda dapat memetakan setiap proses ke sebuah wadah dan bagaimana wadah ini berinteraksi.

Terlebih lagi, Anda harus memeriksa apakah wadah adalah alat terbaik untuk Anda. Meskipun Docker memiliki banyak manfaat, beberapa aplikasi berjalan lebih baik di mesin virtual.

Lihat perbedaan antara container dan VM, lalu putuskan mana yang paling sesuai dengan kebutuhan Anda.

Memanfaatkan Kecepatan Kontainer

Tidak seperti mesin virtual, sebuah wadah tidak memerlukan perpustakaan sumber daya yang luas untuk dijalankan. Sebuah container dapat memuat, mengeksekusi, dan membongkar dari memori dalam sepersekian detik.

Untuk hasil kinerja terbaik, Anda ingin menjaga gambar Docker Anda tetap kecil, dan Docker Anda dibangun dengan cepat. Ada banyak cara untuk mengurangi ukuran gambar, seperti menentukan basis gambar yang lebih kecil, memanfaatkan build multi-tahap, dan menghindari lapisan yang tidak perlu.

Demikian juga, melakukan caching secara lokal pada lapisan Docker yang ada memungkinkan Anda membangun kembali gambar lebih cepat, yang pada akhirnya meningkatkan kecepatan container Anda.

Jalankan Satu Proses di Setiap Kontainer

Tidak ada batasan jumlah container yang dapat Anda luncurkan dan hapus. Masing-masing dapat menjalankan beberapa proses di lingkungannya.

Ingatlah bahwa semakin banyak operasi yang dilakukan wadah, semakin lambat. Ini terutama benar jika Anda membatasi penggunaan CPU dan memori container. Jumlah sumber daya yang dibutuhkan untuk memuat memiliki dampak yang kuat pada kinerja. Sangat mudah untuk melakukan overcommit memori dengan menjalankan banyak tugas sekaligus. Menggunakan satu proses per kontainer membantu membatasi sumber daya bersama tersebut dan mengurangi jejak kontainer secara keseluruhan.

Mendedikasikan satu proses untuk setiap container membantu menjaga lingkungan operasi yang bersih dan ramping.

Gunakan Layanan SWARM

Jika Anda mengelola beberapa container di beberapa mesin host, pertimbangkan untuk menggunakan layanan Docker Swarm, alat orkestrasi container. Docker Swarm mengotomatiskan banyak penjadwalan dan tugas pengelolaan sumber daya serta membantu menskalakan dengan cepat jika pertumbuhan yang cepat menjadi perhatian.

Alternatif populer untuk Swarm adalah Kubernetes, platform alternatif untuk mengotomatiskan penerapan aplikasi. Pilihan antara Docker Swarm dan Kubernetes terutama bergantung pada kebutuhan organisasi Anda.

Hindari Menggunakan Penampung untuk Menyimpan Data

Penyimpanan data meningkatkan input/output (pembacaan/penulisan disk) dari sebuah wadah.

Alat yang lebih baik untuk penyimpanan data adalah repositori perangkat lunak bersama.

Akses ke repositori jarak jauh diberikan ke container berdasarkan permintaan, sehingga mengurangi ukuran container. Ini juga membantu mencegah kontainer yang berbeda memuat dan menyimpan data yang berlebihan. Terakhir, ini dapat mencegah kemacetan karena beberapa proses mengakses penyimpanan.

Temukan dan Simpan Gambar Docker yang Berfungsi

Gambar menampung semua konfigurasi, dependensi, dan kode yang diperlukan untuk suatu tugas.

Mungkin sulit untuk membuat image untuk keseluruhan siklus hidup aplikasi. Namun, setelah Anda membuat gambar, hindari mengubahnya. Mungkin tergoda untuk memperbarui gambar Docker karena dependensi diperbarui. Tetapi memodifikasi gambar di tengah siklus dapat mendatangkan malapetaka dalam proses pengembangan. Ini terutama benar jika tim yang berbeda menggunakan gambar dengan dependensi yang tidak kompatibel.

Menggunakan satu gambar dari awal hingga akhir membuat pemecahan masalah menjadi lebih mudah.

Semua tim akan bekerja dengan lingkungan dasar yang sama, menghabiskan lebih sedikit waktu untuk menyatukan bagian kode yang berbeda. Selain itu, satu pembaruan dapat diselesaikan dan diuji di beberapa wadah. Ini mengurangi pekerjaan duplikat pembaruan individu dan perbaikan kode. Ini juga membantu tim jaminan kualitas menemukan dan memperbaiki masalah dengan lebih cepat.

Jaringan dalam Kontainer

Wadah di Docker diberi alamat IP untuk berkomunikasi satu sama lain. Hal ini dapat menciptakan tantangan dalam lingkungan jaringan.

Sebelumnya, ––LINK perintah digunakan untuk mengelola pengalamatan dan komunikasi. Fitur ini dianggap lawas dan telah diganti dengan jaringan jembatan.

Jaringan jembatan yang ditentukan pengguna antara wadah memungkinkan akses ke semua port dalam jaringan jembatan. Itu juga memblokir semua port ke dunia luar. Ini menciptakan lingkungan yang aman untuk container. Arus lalu lintas internal tidak terganggu dan dilindungi dari pengaruh luar.

Untuk informasi lebih lanjut tentang jembatan yang ditentukan pengguna (dan teknologi lainnya), lihat dokumentasi Docker.

Praktik Terbaik Keamanan Docker

Tim Docker memasang kembali banyak protokol keamanan internet modern. Pengembang jaringan asli tidak membangun keamanan ke dalam protokol jaringan.

Perkuatan keamanan selalu sulit dan mahal. Praktik yang jauh lebih baik adalah menerapkan keamanan selama pengembangan.

Berikut adalah beberapa opsi yang perlu dipertimbangkan untuk mengelola keamanan container Docker .

1. Hindari Menjalankan Kontainer Dengan Hak Istimewa Root

Kebanyakan administrator Linux sudah familiar dengan bahaya memberikan hak akses root penuh kepada pengguna. Peringatan serupa berlaku untuk kontainer. Praktik yang lebih baik adalah membuat wadah hanya dengan hak istimewa yang mereka butuhkan.

Gunakan –u tag untuk menentukan pengguna (bukan administrator).

2. Kredensial Aman

Simpan kredensial di tempat yang berbeda dari tempat Anda menggunakannya. Selain itu, variabel lingkungan adalah cara yang lebih baik untuk mengelola akses dalam wadah.

Menyertakan kredensial dalam wadah yang sama seperti menyimpan kata sandi pada catatan tempel. Skenario terburuk, pelanggaran dalam satu wadah dapat dengan cepat menyebar ke seluruh aplikasi.

3. Gunakan –PRIVILEGED Tag Hemat

Secara default, container berjalan dalam mode unprivileged yang lebih aman.

Kontainer tidak akan dapat mengakses perangkat lain. Jika akses ke perangkat lain diperlukan, gunakan –privileged tag untuk memberikan akses berdasarkan kasus per kasus.

4. Gunakan Aplikasi Keamanan Pihak Ketiga

Itu selalu merupakan ide yang baik untuk memiliki pandangan kedua untuk meninjau konfigurasi keamanan Anda. Alat pihak ketiga memanfaatkan keahlian spesialis keamanan untuk menganalisis perangkat lunak Anda. Mereka juga dapat membantu memindai kode Anda untuk mengetahui kerentanan yang diketahui. Selain itu, mereka sering menyertakan antarmuka yang mudah digunakan untuk mengelola keamanan container.

5. Pertimbangkan Beralih ke Registri Perangkat Lunak Pribadi

Docker Hub mengelola registry image software gratis, yang bisa sangat membantu bagi developer pemula atau tim pengembangan kecil yang mengerjakan proyek kompleks.

Namun, keamanan dapat menjadi perhatian saat menggunakan pendaftar ini. Sebaiknya evaluasi biaya dan manfaat menghosting registry perangkat lunak Anda. Jika Anda menginginkan cara praktis untuk mendistribusikan sumber daya dan berbagi gambar Docker di antara wadah, Anda mungkin ingin menyiapkan registri Docker pribadi.


No
Docker
  1. Cara Berbagi Data Antar Wadah Docker

  2. Cara mencadangkan dan memulihkan wadah Docker

  3. Cara Menjeda dan Melanjutkan Wadah Docker

  1. Cara Membuat, Mendaftar &Menghapus Wadah Docker di Linux

  2. Pemantauan Docker Containers:Manfaat, Praktik Terbaik, dan Alat yang Harus Dimiliki

  3. Cara Mendaftar Kontainer Docker

  1. Cara Mendaftar / Memulai / Menghentikan Kontainer Docker

  2. 10 Praktik Terbaik Keamanan Docker

  3. Belajar Docker:Cara Membuat Wadah Docker