Rumah  >  Artikel  >  Operasi dan penyelenggaraan  >  Apa yang perlu dilakukan jika pemetaan port docker linux tidak boleh diakses

Apa yang perlu dilakukan jika pemetaan port docker linux tidak boleh diakses

PHPz
PHPzasal
2023-04-25 09:01:193742semak imbas

Dalam beberapa tahun kebelakangan ini, teknologi Docker telah berkembang pesat dalam bidang pengkomputeran awan dan telah digunakan secara meluas. Teknologi kontena Docker bukan sahaja membantu pembangun menggunakan aplikasi dengan mudah, tetapi juga dengan cepat membina persekitaran penggunaan yang boleh diulang. Walau bagaimanapun, apabila menggunakan Docker, anda kadangkala menghadapi beberapa masalah, seperti pemetaan port Docker tidak boleh diakses. Artikel ini akan memperkenalkan punca dan penyelesaian kepada situasi ini, dengan harapan dapat membantu pembangun menggunakan Docker.

1. Apakah itu pemetaan port Docker

Dalam bekas Docker, untuk memudahkan akses luaran, selalunya perlu mendedahkan port perkhidmatan di dalam bekas kepada hos. Pada masa ini, anda perlu menggunakan fungsi pemetaan port Docker.

Pemetaan port docker boleh memetakan port dalam bekas ke port pada hos. Sebagai contoh, petakan port 80 dalam bekas ke port 8080 pada hos, supaya apabila mengakses port 8080 pada hos, anda boleh mengakses perkhidmatan port 80 dalam bekas.

2. Mengapakah pemetaan pelabuhan Docker tidak boleh diakses

Apabila menggunakan Docker, kadangkala kita akan mendapati bahawa perkhidmatan di dalam bekas tidak boleh diakses Pemetaan pelabuhan Docker ditetapkan dengan betul. Jika pemetaan port Docker tidak ditetapkan dengan betul, ia akan mengakibatkan tidak boleh diakses.

Sebab umum mengapa pemetaan pelabuhan Docker tidak boleh diakses termasuk yang berikut:

  1. Perkhidmatan dalam kontena tidak mendengar alamat 0.0.0.0

Dalam bekas Docker Secara Dalaman, pembangun biasanya menentukan alamat tempat perkhidmatan mendengar Lalai ialah 127.0.0.1, yang bermaksud ia hanya boleh diakses secara setempat. Jika alamat mendengar perkhidmatan tidak ditukar, walaupun port dipetakan pada hos, perkhidmatan dalam bekas tidak boleh diakses.

  1. Tembok api hos menyekat port

Jika tembok api hos menyekat port yang dipetakan oleh Docker, maka perkhidmatan kontena Docker tidak boleh diakses daripada hos.

  1. Port di mana bekas dijalankan tidak konsisten dengan port yang dipetakan

Perkhidmatan yang dijalankan dalam bekas Docker mungkin berjalan pada port In yang tidak standard kes ini, adalah perlu untuk Memetakan semasa pemetaan port. Jika port yang dipetakan tidak konsisten dengan port perkhidmatan yang berjalan dalam bekas, perkhidmatan itu tidak boleh diakses.

  1. Bekas Docker tidak berjalan dengan betul

Jika bekas Docker tidak berjalan dengan betul, port yang dipetakan tidak akan dapat diakses. Anda boleh menyelesaikan masalah dengan melihat bekas Docker menjalankan log.

3. Bagaimana untuk menyelesaikan masalah pemetaan port Docker yang tidak boleh diakses

Atas sebab di atas mengapa pemetaan port Docker tidak boleh diakses, penyelesaian berikut boleh diambil:

  1. Gunakan port mendengar alamat 0.0 .0.0

Di dalam bekas Docker, apabila memantau port perkhidmatan, anda boleh menggunakan alamat 0.0.0.0, yang bermaksud anda boleh menerima permintaan daripada mana-mana alamat IP.

Sebagai contoh, dalam Node.js, kod untuk menukar alamat pendengaran daripada 127.0.0.1 kepada 0.0.0.0 adalah seperti berikut:

app.listen(3000, '0.0.0.0', function() {
  console.log('Server listening on port 3000');
});
  1. Semak konfigurasi tembok api hos

Dalam sistem Linux, anda boleh membuka port melalui arahan berikut:

iptables -I INPUT -p tcp --dport 映射的端口号 -j ACCEPT

Sebagai contoh, arahan untuk membuka kebenaran akses untuk port 8080 adalah seperti berikut:

sudo iptables -I INPUT -p tcp --dport 8080 -j ACCEPT
    Apabila menjalankan arahan ini, anda perlu memastikan bahawa perkhidmatan Nginx berjalan pada port 80 secara lalai.
Semak log berjalan bekas Docker

docker ps

Anda boleh menggunakan perintah
docker run -p 8080:80 nginx
untuk melihat maklumat log proses berjalan bekas Docker dan semak log maklumat untuk menyelesaikan masalah menjalankan kontena.

Di atas ialah beberapa kaedah dan petua untuk menyelesaikan masalah pemetaan pelabuhan Docker yang tidak boleh diakses Saya harap ia akan membantu semua orang.

    Atas ialah kandungan terperinci Apa yang perlu dilakukan jika pemetaan port docker linux tidak boleh diakses. 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