Docker (atau bekas Docker) ialah platform virtualisasi sumber terbuka popular yang membolehkan aplikasi dijalankan dalam persekitaran terpencil yang dipanggil bekas. Pengasingan Docker membantu kami menjalankan berbilang aplikasi pada mesin yang sama tanpa konflik.
Walau bagaimanapun, Docker tidak sempurna. Walaupun bekas Docker mempunyai pengasingan yang sangat baik, mereka tidak boleh mengasingkan semua sumber. Artikel ini akan membincangkan sumber yang tidak boleh diasingkan oleh Docker.
Memori ialah sumber yang Docker tidak boleh diasingkan sepenuhnya. Dalam Docker, setiap bekas boleh menetapkan had memorinya sendiri supaya ia tidak menggunakan lebih banyak memori. Walau bagaimanapun, jika terlalu banyak memori digunakan oleh proses lain pada sistem, prestasi bekas Docker mungkin terjejas. Apabila bekas Docker menggunakan kurang memori daripada yang mereka perlukan, mereka mula menukar memori, yang menghasilkan prestasi yang sangat lemah.
Sama seperti memori, bekas Docker tidak boleh mengasingkan cakera keras sepenuhnya. Jika bekas Docker perlu mengakses sistem fail tempatan, maka ia perlu mencipta direktori dan mewujudkan bahagian pada sistem pengendalian hos. Oleh itu, jika proses lain dalam sistem menjana akses cakera intensif, ini mungkin menjejaskan prestasi bekas Docker.
Bekas docker boleh menggunakan rangkaian mereka sendiri, tetapi mereka tidak boleh mengasingkan rangkaian hos sepenuhnya. Ini kerana bekas Docker mungkin berkomunikasi dengan bekas lain atau hos. Selain itu, aplikasi yang berjalan dalam bekas mungkin memerlukan akses luaran kepada perkhidmatan yang disimpan pada mesin hos, seperti pangkalan data atau cache. Sambungan rangkaian ini boleh diganggu oleh proses lain, menyebabkan masalah prestasi untuk bekas.
Docker sendiri tidak mengehadkan penggunaan CPU, tetapi ia boleh mengehadkan penggunaan CPU setiap bekas dengan menetapkan had CPU. Walau bagaimanapun, jika proses lain pada sistem menggunakan terlalu banyak sumber CPU, ini akan menjejaskan prestasi bekas Docker. Dalam kes ini, bekas mungkin mengalami kelewatan dan kelembapan.
Masa nyata juga merupakan satu lagi aspek penting yang tidak boleh diasingkan oleh bekas Docker. Pengasingan Docker dicapai melalui fungsi "ruang nama" dan "Cgroups" dalam kernel Linux. Mekanisme pengasingan ini tidak bersifat masa nyata. Ini bermakna dalam situasi di mana proses lain menghasilkan beban yang teruk, prestasi bekas Docker mungkin terjejas pada tahap yang berbeza-beza.
Ringkasan
Walaupun Docker ialah platform virtualisasi yang popular, ia juga mempunyai beberapa kelemahan. Ia tidak boleh mengasingkan semua sumber, seperti memori, cakera keras, rangkaian, CPU dan masa nyata. Walaupun sumber ini tidak boleh diasingkan sepenuhnya, bekas Docker masih boleh memberikan kami persekitaran yang sangat terpencil untuk menjalankan berbilang aplikasi dan mengelakkan konflik antara mereka. Kita boleh mengelakkan kesan isu sumber ini pada bekas Docker dengan merancang sumber sistem pengendalian yang lebih baik.
Atas ialah kandungan terperinci Apakah sumber yang tidak boleh diasingkan oleh buruh pelabuhan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!