Rumah  >  Artikel  >  Operasi dan penyelenggaraan  >  Bagaimana untuk menyelesaikan masalah bahawa pelabuhan baharu docker disekat

Bagaimana untuk menyelesaikan masalah bahawa pelabuhan baharu docker disekat

PHPz
PHPzasal
2023-04-18 09:48:031692semak imbas

Docker ialah platform kontena sumber terbuka yang membolehkan pembangun membuat, menggunakan dan menjalankan aplikasi dengan mudah untuk penghantaran yang pantas dan boleh dipercayai. Ia membolehkan aplikasi digunakan dengan cepat dan dijalankan dalam persekitaran yang berbeza dengan membungkus aplikasi dan komponen yang diperlukan ke dalam bekas bebas. Walau bagaimanapun, apabila menggunakan Docker, beberapa masalah juga akan timbul, seperti masalah port baru disekat.

Docker membenarkan kami memetakan port di dalam bekas ke port pada hos semasa menjalankan kontena, supaya kami boleh mengakses perkhidmatan pada port tersebut. Apabila kami menukar port dalaman kontena, kadangkala kami mungkin menghadapi masalah bahawa port baharu tidak dapat dicapai. Di bawah, mari kita terokai kemungkinan punca dan penyelesaian kepada masalah ini.

  1. Servis dalam kontena tidak dimulakan dengan betul

Apabila kita menukar port dalaman kontena, kita perlu memastikan bahawa perkhidmatan dalam kontena telah dimulakan dengan betul dan sedang mendengar pada port baharu. Anda boleh menyemak sama ada perkhidmatan telah berjaya dimulakan dengan menjalankan arahan berikut:

docker ps  # 查看容器是否处于运行状态

docker logs <container_name>  # 查看容器日志,看是否有服务启动的相关信息

Jika anda mendapati perkhidmatan tidak dimulakan dengan betul, anda mungkin perlu menyemak Dockerfile atau skrip permulaan untuk mengesan ralat atau kehilangan, atau jalankan beberapa arahan penyahpepijatan lain.

  1. Tetapan firewall atau kumpulan keselamatan dalam bekas

Kadangkala tetapan firewall atau kumpulan keselamatan di dalam bekas mungkin menghalang akses kepada perkhidmatan dalam bekas daripada port pada hos. Dalam kes ini, kita perlu membuka port di dalam bekas secara manual atau menukar fail konfigurasi.

Anda boleh melihat tetapan rangkaian bekas melalui arahan berikut:

docker exec -it <container_name> bash
ip addr

Di dalam bekas, anda boleh menggunakan arahan iptables untuk membuka port:

iptables -I INPUT -p tcp --dport <container_port> -j ACCEPT

Atau ubah suai konfigurasi terus fail dan kemudian mulakan semula bekas.

  1. Tetapan Tembok Api Hos atau Proksi Rangkaian

Kadangkala tetapan tembok api atau proksi pada hos boleh menghalang akses kepada perkhidmatan di dalam bekas daripada port pada hos. Kita perlu menyemak tetapan tembok api hos untuk memastikan port baharu dibenarkan.

Jika anda menggunakan proksi rangkaian, anda mungkin perlu menukar tetapan proksi untuk membenarkan akses kepada perkhidmatan di dalam bekas dari port baharu.

  1. Port hos sudah diduduki

Apabila kita menukar port dalaman kontena, kita perlu memastikan bahawa port pada hos tidak diduduki. Anda boleh menyemak penghunian port pada hos melalui arahan berikut:

netstat -tlnp | grep <host_port>

Jika anda mendapati port telah diduduki, anda mungkin perlu menghentikan proses menduduki port atau menukar port yang dipetakan bagi kontena .

Ringkasan

Kegagalan port baharu ialah masalah biasa yang dihadapi semasa menggunakan Docker. Mungkin terdapat banyak sebab untuk masalah ini, termasuk perkhidmatan dalam bekas tidak bermula dengan betul, firewall atau tetapan kumpulan keselamatan dalam bekas, firewall hos atau tetapan proksi rangkaian, port hos telah diduduki, dsb. Dengan menganalisis punca masalah dan mengambil penyelesaian yang sepadan, kami boleh menyelesaikan masalah ini dengan mudah, membolehkan kami menggunakan platform Docker dengan lebih cekap.

Atas ialah kandungan terperinci Bagaimana untuk menyelesaikan masalah bahawa pelabuhan baharu docker disekat. 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