Rumah Operasi dan penyelenggaraan Docker Apakah yang perlu saya lakukan jika port web yang dibina oleh docker disekat?

Apakah yang perlu saya lakukan jika port web yang dibina oleh docker disekat?

Apr 18, 2023 pm 02:07 PM

Docker ialah enjin kontena sumber terbuka yang sangat popular Ia digunakan secara meluas dalam persekitaran pembangunan dan pengeluaran kerana ia boleh dibina dengan cepat, mudah diurus dan memastikan kemudahalihan aplikasi. Walau bagaimanapun, apabila menggunakan Docker untuk membina aplikasi web, tidak jarang port tidak dapat berkomunikasi. Hari ini kita akan menganalisis sebab dan penyelesaian mengapa port web yang dibina oleh Docker disekat.

1. Analisis sebab

  1. Sebab firewall

Perkhidmatan firewall iptables didayakan secara lalai dalam sistem Linux. firewall mungkin menyekatnya bekas docker anda berkomunikasi dengan rangkaian luaran. Oleh itu, anda boleh mematikan tembok api atau menambah peraturan supaya Docker boleh berkomunikasi dengan rangkaian luaran dengan lancar. Berikut ialah arahan rujukan:

Tutup tembok api: $ sudo service iptables stop

Buka port: $ sudo iptables -A INPUT -p tcp --dport 80 -j TERIMA

  1. Sebab pemetaan port

Selepas Docker memulakan kontena, ia memetakan port dalam bekas ke port pada hos melalui pemetaan port untuk membolehkan komunikasi antara kontena dan rangkaian luaran. Secara lalai, rangkaian kontena adalah bebas dan hanya berkomunikasi secara dalaman. Oleh itu, jika anda tidak memetakan port di dalam bekas, ia mungkin menyebabkan port tidak dapat berkomunikasi. Berikut ialah cara lalai untuk memetakan port:

$ docker run -p 80:80 image-name

  1. Isu rangkaian kontena

Terdapat tiga jenis dalam pemacu Rangkaian Docker ialah jambatan, hos dan tiada. Apabila menggunakan bekas Docker, pemacu rangkaian jambatan digunakan secara lalai, membentuk rangkaian maya berdasarkan rangkaian NAT. Jika bekas anda tidak boleh mengakses rangkaian luaran, anda mungkin perlu menyemak sama ada pemacu rangkaian anda dipilih dengan betul. Anda boleh menggunakan arahan berikut untuk menyemak pemacu rangkaian:

$ docker network ls

  1. Masalah alamat IP kontena

Selepas Docker memulakan bekas, ia akan berdasarkan pemacu rangkaian Ia memberikan alamat IP yang unik. Jika alamat IP bekas anda tidak boleh mengakses rangkaian luaran, anda perlu menyemak sama ada kad rangkaian yang disambungkan kepadanya dikonfigurasikan dengan betul. Dalam contoh berikut, kita dapat melihat bahawa alamat IP bekas ialah 172.17.0.2:

$ docker inspect container-name | grep IPAddress

2

Sahkan sama ada pemetaan port adalah betul
  1. Anda boleh menggunakan kaedah berikut untuk melihat perhubungan pemetaan port:

$ nama kontena port docker

Kandungan output hendaklah:

80/tcp -> 0.0.0.0:80

Arahan di atas boleh melihat pemetaan port di dalam bekas ke port pada hos.

Sahkan sama ada pemacu rangkaian dipilih dengan betul
  1. Anda boleh menggunakan kaedah berikut untuk menyemak jenis rangkaian yang digunakan oleh bekas:

$ docker periksa nama bekas |. grep NetworkMode

Jika output adalah jambatan, ini bermakna pemacu rangkaian telah dipilih dengan betul. Jika output adalah hos atau tiada, anda boleh menukarnya seperti berikut:

Tukar jenis rangkaian kepada jambatan:

$ docker run --network bridge image-name

Sahkan sama ada tembok api dimatikan atau peraturan ditetapkan dengan betul
  1. Anda boleh menambah parameter --privileged semasa menjalankan perintah Docker untuk memberi bekas Docker kebenaran yang lebih tinggi:

$ docker run --privileged image-name

Sahkan sama ada alamat IP bekas adalah betul
  1. Anda boleh menggunakan arahan berikut untuk melihat alamat IP bekas:

$ docker inspect container -name |. grep IPAddress

Jika alamat IP bekas anda berubah, anda boleh menggunakan arahan berikut untuk menetapkan semula alamat IP unik:

$ docker run --ip 172.17.0.10 image-name

Ringkasnya, apabila port aplikasi web yang dimulakan oleh Docker anda tidak dapat berkomunikasi, anda harus terlebih dahulu menyiasat apa yang menyebabkan keadaan ini, dan kemudian menyelesaikan masalah dengan cara yang sepadan. Harap artikel ini dapat membantu semua.

Atas ialah kandungan terperinci Apakah yang perlu saya lakukan jika port web yang dibina oleh docker disekat?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Cara keluar dari bekas dengan Docker Cara keluar dari bekas dengan Docker Apr 15, 2025 pm 12:15 PM

Empat cara untuk keluar dari Docker Container: Gunakan Ctrl D di terminal kontena masukkan perintah keluar di terminal kontena Gunakan Docker Stop & lt; container_name & gt; Perintah Gunakan Docker Kill & lt; container_name & gt; Perintah di terminal tuan rumah (keluar kuasa)

Cara menyalin fail di Docker ke luar Cara menyalin fail di Docker ke luar Apr 15, 2025 pm 12:12 PM

Kaedah untuk menyalin fail ke tuan rumah luaran di Docker: Gunakan arahan CP Docker: Jalankan Docker CP [Options] & lt; Container Path & GT; & lt; PATH HOST & GT;. Menggunakan jumlah data: Buat direktori pada tuan rumah, dan gunakan parameter -V parameter untuk memasang direktori ke dalam bekas apabila membuat bekas untuk mencapai penyegerakan fail bidirectional.

Cara memeriksa nama bekas Docker Cara memeriksa nama bekas Docker Apr 15, 2025 pm 12:21 PM

Anda boleh menanyakan nama kontena Docker dengan mengikuti langkah -langkah: Senaraikan semua bekas (Docker PS). Tapis senarai kontena (menggunakan arahan grep). Mendapat nama kontena (terletak di lajur "Nama").

Cara memulakan semula Docker Cara memulakan semula Docker Apr 15, 2025 pm 12:06 PM

Cara memulakan semula bekas Docker: Dapatkan ID Container (Docker PS); Hentikan bekas (Docker Stop & lt; container_id & gt;); Mulakan bekas (Docker Start & lt; container_id & gt;); Sahkan bahawa permulaan semula berjaya (Docker PS). Kaedah lain: Docker mengarang (Docker-Compose Restart) atau Docker API (lihat Dokumentasi Docker).

Cara Memulakan MySQL oleh Docker Cara Memulakan MySQL oleh Docker Apr 15, 2025 pm 12:09 PM

Proses memulakan MySQL di Docker terdiri daripada langkah -langkah berikut: Tarik imej MySQL untuk membuat dan memulakan bekas, tetapkan kata laluan pengguna root, dan memetakan sambungan pengesahan port Buat pangkalan data dan pengguna memberikan semua kebenaran ke pangkalan data

Jilid Docker: Menguruskan data berterusan dalam bekas Jilid Docker: Menguruskan data berterusan dalam bekas Apr 04, 2025 am 12:19 AM

Dockervolumes memastikan data tetap selamat apabila bekas dimulakan semula, dipadam, atau berhijrah. 1. Buat Jilid: DockervolumecreatemyData. 2. Jalankan bekas dan gunung: dockerrun-it-vmydata:/app/dataubuntubash. 3. Penggunaan lanjutan termasuk perkongsian data dan sandaran.

Cara mengemas kini imej Docker Cara mengemas kini imej Docker Apr 15, 2025 pm 12:03 PM

Langkah -langkah untuk mengemas kini imej Docker adalah seperti berikut: Tarik tag imej terkini imej baru memadam imej lama untuk tag tertentu (pilihan) mulakan semula bekas (jika diperlukan)

Soalan Temuduga Docker: Ace Wawancara Kejuruteraan DevOps Anda Soalan Temuduga Docker: Ace Wawancara Kejuruteraan DevOps Anda Apr 06, 2025 am 12:01 AM

Docker adalah kemahiran yang mesti ada untuk jurutera DevOps. 1.Docker adalah platform kontena sumber terbuka yang mencapai pengasingan dan mudah alih dengan aplikasi pembungkusan dan kebergantungan mereka ke dalam bekas. 2. Docker bekerja dengan ruang nama, kumpulan kawalan dan sistem fail bersekutu. 3. Penggunaan asas termasuk mencipta, menjalankan dan menguruskan bekas. 4. Penggunaan lanjutan termasuk menggunakan DockerCompose untuk menguruskan aplikasi multi-kontainer. 5. Kesilapan umum termasuk kegagalan kontena, masalah pemetaan pelabuhan, dan masalah ketekunan data. Kemahiran penyahpepijatan termasuk log melihat, memasukkan bekas, dan melihat maklumat terperinci. 6. Pengoptimuman prestasi dan amalan terbaik termasuk pengoptimuman imej, kekangan sumber, pengoptimuman rangkaian dan amalan terbaik untuk menggunakan Dockerfile.

See all articles