Penjara FreeBSD atau contoh Docker

Apa perbedaan utama antara penjara di FreeBSD dan Docker di Linux? Apakah yang satu jauh lebih aman atau lebih berkinerja daripada yang lain? Penjara jauh lebih tua dari instance Docker sehingga kode itu sendiri dapat dianggap lebih aman. Tapi penjara tidak pernah "tertangkap" jadi mungkin mereka tidak sebagus contoh Docker? Atau apakah itu hanya karena Linux jauh lebih populer daripada FreeBSD?

Saya akan membahas beberapa aspek penjara FreeBSD dan Docker Linux, tentang bagaimana mereka serupa dan bagaimana mereka berbeda.

  • keduanya melayani tujuan yang sama: ini adalah implementasi virtualisasi ringan, ketika Anda menjalankan aplikasi di kompartemen terpisah dan terisolasi di bawah kernel yang sama, dan di sini kesamaan berakhir, dan perbedaan dimulai
  • Docker adalah alat yang digunakan terutama untuk menjalankan gambar biner siap bahwa seseorang bisa mendapatkan dari berbagai repositori publik atau swasta. Kebanyakan orang menggunakannya dengan cara ini. Lebih sedikit orang membangun yang mereka sendiri dan meng-upload kemudian ke repositori tersebut.
  • Penjara FreeBSD lebih seperti LXC di Linux: ini adalah metode untuk membuat wadah anda dari awal. Anda membuatnya, menginstal perangkat lunak ke dalamnya, dan itu cukup banyak - itu dapat diperlakukan sebagai FreeBSD di dalam FreeBSD. Tidak ada cara mudah untuk mengekspor wadah itu sebagai satu perangkat lunak, seperti di Docker. Jadi hampir semua orang yang menggunakan FreeBSD, au contraire, selalu membangun FreeBSD mereka sendiri di dalam wadah dari awal (yaitu dari sistem dasar yang diinstal), menginstal perangkat lunak dari sistem port FreeBSD atau dari sumber. Penjara FreeBSD dengan demikian kurang ramah, dan memiliki biaya penggunaan awal yang lebih tinggi.
  • dengan cara yang sama seperti wadah LXC persisten, penjara FreeBSD juga persisten. Semua perubahan tetap utuh di antara sepatu bot. Seperti yang saya katakan, itu hanya sepotong OS di dalam OS yang sama (meskipun versi perangkat lunak userland mungkin berbeda sampai ABI dipertahankan di kernel FreeBSD). Ini berarti Anda tidak bisa komit perubahan-mereka berkomitmen setelah mereka diciptakan.
  • dari semua hal di atas, jelas mengapa kontainer FreeBSD tidak dapat memiliki lapisan orkestrasi yang serupa, seperti yang dilakukan Docker: tidak ada penerbitan port, tidak ada volume, tidak ada tautan atau meta-koneksi antara penjara yang berbeda. Hanya antarmuka yang diberikan OS jaringan kepada anda: soket jaringan, soket unix, titik pemasangan umum.
  • tidak ada batasan, tentu saja, tentang siapa yang dapat berkomunikasi dengan siapa di dalam penjara FreeBSD, karena tidak ada di Docker.
  • Anda dapat menjalankan gambar docker asli di FreeBSD, karena setidaknya ada sebagian dukungan docker di bawah FreeBSD, tetapi, karena Linux gratis, saya sangat menyarankan untuk tidak melakukannya (dan saya benar-benar dan sangat menyukai FreeBSD), karena mereka akan dijalankan melalui lapisan kompatibilitas Linux (disediakan dengan modul kernel FreeBSD) yang menyediakan beberapa batasan yang diketahui.