Oleh kerana apabila bekas docker sedang berjalan, jika parameter pemetaan port tidak dinyatakan, perkhidmatan aplikasi rangkaian dalam bekas tidak boleh diakses melalui rangkaian di luar bekas, jadi pemetaan pelabuhan docker perlu ditetapkan; pas Port terikat pada antara muka sistem hos, membenarkan pelanggan bukan tempatan mengakses perkhidmatan yang dijalankan di dalam bekas.
Persekitaran pengendalian tutorial ini: sistem linux7.3, docker versi 19.03, komputer Dell G3.
Doker ialah enjin kontena aplikasi sumber terbuka Secara ringkasnya, ia adalah bekas yang boleh membungkus atur cara dan persekitaran yang dijalankan, serta menerbitkan persekitaran dan program bersama-sama. Apabila anda perlu menerbitkan program, anda boleh menggunakan doker untuk menerbitkan persekitaran berjalan bersama-sama Selepas orang lain mendapat program anda, mereka boleh menjalankannya secara langsung, mengelakkan situasi yang memalukan untuk menyusun sekali dan menyahpepijat di mana-mana.
Secara terang-terangan, kemunculan doker adalah terutamanya untuk menyelesaikan masalah mengapa ia normal pada mesin saya tetapi tidak normal pada mesin anda. Bekas Docker mempunyai empat keadaan: berjalan, dijeda, dimulakan semula dan keluar.
Mengapa kita memerlukan pemetaan pelabuhan doker?
Apabila bekas docker sedang berjalan, jika parameter pemetaan port tidak ditentukan (pemetaan port antara mesin hos dan mesin maya tidak dikonfigurasikan), bekas tidak boleh diakses melalui rangkaian dari luar kontena aplikasi dan perkhidmatan rangkaian (program luaran tidak boleh mengakses mesin maya kerana tiada port). Untuk menyelesaikan masalah ini, anda perlu menyediakan pemetaan port doker.
Docker mengikat antara muka sistem hos melalui port, membenarkan pelanggan bukan tempatan mengakses perkhidmatan yang dijalankan di dalam bekas. Untuk memudahkan komunikasi antara kontena, docker menyediakan mekanisme sambungan ini.
Dua kaedah pemetaan pelabuhan lazim bagi docker
Secara automatik memetakan port
-P使用时需要指定--expose选项,指定需要对外提供服务的端口 $ sudo docker run -t -P --expose 22 --name server ubuntu:14.04
Gunakan docker run -P Automatically bind semua port kontena yang menyediakan perkhidmatan luaran Port yang dipetakan akan dipilih secara automatik daripada kolam pelabuhan yang tidak digunakan (49000..49900 Anda boleh menentukan maklumat pengikatan khusus melalui docker ps, docker inspect atau docker port).
Ikat port ke antara muka yang ditentukan
Sintaks asas
$ sudo docker run -p [([:[host_port]])|():] [/ udp]
Secara lalai, semua antara muka rangkaian akan dipantau jika IP pengikat tidak ditentukan.
Pembelajaran yang disyorkan: "tutorial video buruh pelabuhan"
Atas ialah kandungan terperinci Mengapa buruh pelabuhan memerlukan pemetaan pelabuhan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!