Rumah  >  Artikel  >  Operasi dan penyelenggaraan  >  Mari kita bincangkan tentang penyelesaian kepada masalah yang Docker tidak boleh menggunakan port 80

Mari kita bincangkan tentang penyelesaian kepada masalah yang Docker tidak boleh menggunakan port 80

PHPz
PHPzasal
2023-04-10 14:19:273726semak imbas

Docker ialah enjin kontena aplikasi sumber terbuka yang boleh membungkus aplikasi dengan mudah ke dalam bekas untuk penggunaan, berjalan dan pengurusan. Walau bagaimanapun, apabila menggunakan Docker untuk menggunakan aplikasi, kadangkala anda menghadapi masalah bahawa port 80 tidak boleh digunakan. Artikel ini akan memperkenalkan beberapa penyelesaian untuk menangani masalah ini.

Perihalan Masalah

Apabila menggunakan Docker untuk menggunakan aplikasi, jika aplikasi perlu dijalankan pada port 80, mesej ralat berikut biasanya muncul:

Error starting userland proxy: listen tcp 0.0.0.0:80: bind: address already in use.

Ralat ini mesej menunjukkan Port 80 sudah digunakan oleh proses lain, jadi Docker tidak boleh menggunakan port ini.

Penyelesaian

Berikut adalah beberapa cara untuk menyelesaikan masalah yang Docker tidak boleh menggunakan port 80.

1. Hentikan proses yang menduduki port 80

Kami boleh menyemak proses yang menduduki port 80 dan menghentikan proses supaya Docker boleh menggunakan port ini. Berikut ialah langkah-langkah untuk menghentikan proses yang menduduki port 80 pada sistem Linux:

  1. Laksanakan arahan berikut untuk melihat ID proses yang menduduki port 80:

    sudo lsof -i:80
  2. Lihat proses yang sepadan dengan ID proses:

    sudo ps -p [PID]
  3. Hentikan proses:

    sudo kill [PID]

2. Ubah suai port dipetakan Docker

Selain menghentikan proses yang menduduki port 80, anda juga boleh mengelakkan konflik dengan proses yang menduduki port 80 dengan mengubah suai port dipetakan Docker.

Andaikan kita mempunyai aplikasi mendengar pada port 8080 secara tempatan, dan ingin memetakan port 80 bekas Docker ke port 8080 tempatan, maka kita boleh menggunakan arahan berikut untuk memulakan bekas Docker:

sudo docker run -p 8080:80 [image name]

Dengan cara ini, Docker memetakan port kontena 80 ke port tempatan 8080, supaya kami boleh mengakses aplikasi dalam penyemak imbas.

3. Gunakan proksi Nginx

Cara lain untuk menyelesaikan ketidakupayaan Docker untuk menggunakan port 80 ialah menggunakan proksi Nginx. Kami boleh mengkonfigurasi Nginx untuk mendengar pada port 80 dan memajukan trafik ke port lain dalam bekas Docker. Berikut ialah contoh konfigurasi mudah:

http {
    server {
        listen 80;
        server_name example.com;

        location / {
            proxy_pass http://localhost:8080;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }
    }
}

Dalam contoh ini, Nginx mendengar pada port 80 dan memajukan trafik ke bekas Docker pada port 8080.

Ringkasan

Di atas adalah tiga kaedah untuk menyelesaikan masalah yang Docker tidak boleh menggunakan port 80. Anda boleh memilih kaedah yang sesuai dengan anda mengikut situasi sebenar anda. Apabila menggunakan Docker untuk menggunakan aplikasi, anda perlu memberi perhatian kepada konflik port untuk mengelakkan masalah yang tidak perlu.

Atas ialah kandungan terperinci Mari kita bincangkan tentang penyelesaian kepada masalah yang Docker tidak boleh menggunakan port 80. 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