Rumah  >  Artikel  >  Operasi dan penyelenggaraan  >  Analisis ringkas tentang sebab dan langkah berjaga-jaga untuk docker run bukan pemetaan

Analisis ringkas tentang sebab dan langkah berjaga-jaga untuk docker run bukan pemetaan

PHPz
PHPzasal
2023-04-10 14:18:151309semak imbas

Docker ialah platform yang membolehkan aplikasi dijalankan dalam bekas terpencil dan mudah alih. Ia menggunakan beberapa ciri kernel Linux untuk melaksanakan virtualisasi ringan dan mencapai pengasingan perisian. Atas sebab ini, Docker telah digunakan secara meluas dalam bidang penggunaan perisian kerana bekasnya yang ringan.

Apabila kita menjalankan kontena di Docker, kadangkala kita tidak perlu memetakan port kontena kepada hos. Artikel ini akan memperkenalkan beberapa situasi dan langkah berjaga-jaga apabila menjalankan bekas Docker tanpa pemetaan port.

Kes tidak memetakan port

Dalam sesetengah senario, kes tidak memetakan port mungkin sangat berguna. Situasi yang paling biasa ialah menggunakan Docker untuk menjalankan perkhidmatan latar belakang. Sebagai contoh, kita boleh menggunakan arahan berikut untuk memulakan pelayan Nginx:

docker run -d nginx

Arahan ini akan memulakan bekas Nginx di latar belakang dan memulakan proses Nginx dalam bekas. Walau bagaimanapun, pada masa ini, bekas Nginx tidak memetakan port kontena 80 kepada hos. Ini bermakna kita tidak boleh mengakses contoh Nginx ini dengan mengakses port 80 mesin hos.

Satu lagi senario biasa ialah menggunakan Docker untuk menjalankan beberapa atur cara alat. Kita boleh menggunakan arahan berikut untuk memulakan bekas Ubuntu yang boleh melaksanakan skrip bash:

docker run -it ubuntu bash

Arahan ini akan memulakan bekas Ubuntu dalam mod interaktif dan memasuki proses bash dalam bekas. Pada masa ini, kita tidak perlu memetakan port kontena ke hos.

Nota tentang tidak memetakan port

Walaupun mudah untuk tidak memetakan port dalam sesetengah senario, kita mesti memberi perhatian kepada isu berikut:

Tidak dapat menyambung daripada hos dan lain-lain Mengakses bekas dalam rangkaian

Apabila kontena tidak mempunyai port yang dipetakan, kami tidak boleh mengakses kontena melalui hos dan mesin lain dalam rangkaian. Ini bermakna jika kita perlu mengakses aplikasi di dalam bekas dari luar hos, kita mesti memetakan port kontena ke hos.

Aplikasi dalam bekas masih perlu mendengar pada port

Walaupun port kontena tidak dipetakan kepada hos, aplikasi yang berjalan dalam bekas masih perlu mendengar pada port. Ini kerana aplikasi di dalam bekas perlu mengendalikan permintaan rangkaian.

Bekas masih mempunyai keupayaan capaian rangkaian

Walaupun kami tidak memetakan port kontena kepada hos, bekas itu masih mempunyai keupayaan capaian rangkaian. Ini bermakna aplikasi di dalam bekas boleh mengakses perkhidmatan pada rangkaian lain, seperti pangkalan data atau perkhidmatan web.

Kesimpulan

Apabila menjalankan kontena di Docker, kita tidak semestinya perlu memetakan port kontena ke hos. Tidak memetakan port mungkin sangat berguna untuk perkhidmatan latar belakang atau beberapa program utiliti. Walau bagaimanapun, perlu diingatkan bahawa jika anda perlu mengakses aplikasi di dalam bekas dari luar, anda mesti memetakan port kontena ke hos. Pada masa yang sama, aplikasi yang berjalan dalam bekas masih perlu mendengar port untuk memastikan ia boleh mengendalikan permintaan rangkaian secara normal.

Atas ialah kandungan terperinci Analisis ringkas tentang sebab dan langkah berjaga-jaga untuk docker run bukan pemetaan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn