Rumah  >  Artikel  >  Operasi dan penyelenggaraan  >  Apakah yang perlu saya lakukan jika docker berjaya dibuat tetapi tidak dapat menyambung?

Apakah yang perlu saya lakukan jika docker berjaya dibuat tetapi tidak dapat menyambung?

PHPz
PHPzasal
2023-04-18 09:05:431553semak imbas

Ditulis sebelum:
Artikel ini terutamanya bercakap tentang sebab dan penyelesaian apabila docker berjaya dibuat tetapi tidak boleh disambungkan. Ia adalah artikel praktikal untuk pemula. Operasi dan penyelesaian dalam artikel adalah berdasarkan persekitaran sistem Ubuntu.

Dalam proses menggunakan docker, terdapat beberapa situasi di mana walaupun bekas anda berjaya dibuat, ia tidak boleh disambungkan. Keadaan ini sering menyebabkan orang ramai tertekan dan tidak dapat mencari masalah. Artikel ini akan menggunakan kes praktikal untuk menerangkan sebab dan penyelesaian mengapa docker berjaya dibuat tetapi tidak boleh disambungkan.

Perihalan kes:

Kami menggunakan docker untuk mencipta bekas nginx pada komputer tempatan kami, tetapi apabila mengaksesnya, kami tidak dapat menyambung dengan jayanya.
Langkah-langkahnya adalah seperti berikut:

  1. Pasang docker pada sistem Ubuntu

Masukkan arahan berikut pada baris arahan:

sudo apt- dapatkan install docker. io

Selepas pemasangan selesai, gunakan arahan berikut untuk memulakan docker:

sudo systemctl start docker

  1. Buat kontena nginx pada docker

Masukkan arahan berikut pada baris arahan:

sudo docker run --name mynginx -p 80:80 -d nginx

Arahan ini bermaksud: gunakan imej nginx untuk mencipta bekas baharu, bekas Namanya mynginx, yang memetakan port 80 ke port 80 tempatan dan berjalan di latar belakang.

  1. Sahkan sama ada bekas itu berjaya dibuat

Masukkan arahan berikut pada baris arahan:

sudo docker ps

Jika kandungan berikut dipaparkan, Menunjukkan bahawa bekas itu berjaya dibuat:

PERINTAH IMEJ ID BEKAS NAMA PORT STATUS DIBUAT
aaed7c1bcccf                                                                                                                                                                                                                                                                                                                                                   

  1. Lawati nginx dalam penyemak imbas

Masukkan localhost atau 127.0.0.1 dalam penyemak imbas untuk melihat antara muka alu-aluan nginx.

Walau bagaimanapun, terdapat situasi di mana nginx tidak boleh diakses.

Analisis masalah:

Pertama sekali, kita perlu mengesahkan di mana masalahnya.

  1. Lihat konfigurasi tembok api sistem

Alat tembok api lalai sistem Ubuntu ialah ufw, anda boleh menggunakan arahan berikut untuk melihat konfigurasinya:

sudo status ufw

Jika output adalah seperti berikut, ini bermakna firewall sistem dihidupkan:

Status: aktif

Ke                                                                                                                                                    - - - A membenarkan mana -mana

80/tcp di mana sahaja (V6)

pada masa ini, kita perlu mengesahkan port 80 sama ada ia telah dibenarkan melalui firewall sistem. Seperti yang anda lihat daripada output di atas, port 80 telah dibenarkan akses, jadi ini bukan masalahnya.


Status sambungan rangkaian

Jika kami menggunakan arahan ping untuk menyemak status sambungan rangkaian 127.0.0.1, kami akan menemui mesej ralat berikut:
  1. ping : sambung: Rangkaian tidak dapat dicapai
Ini bermakna masalah sambungan rangkaian terletak di sini. Teruskan menyiasat puncanya.

Adakah alamat rangkaian tempatan betul

Cuba sambung ke alamat rangkaian tempatan bekas nginx, kerana apabila kami mencipta bekas, port 80 dipetakan ke port tempatan 80, jadi Kami perlu menggunakan alamat rangkaian tempatan bekas untuk mengaksesnya. Anda boleh menggunakan arahan berikut untuk melihat alamat bekas tempatan:
  1. sudo docker inspect mynginx | ​​​​grep IPAddress
Hasil respons harus serupa dengan:

"IPAddress ": "172.17.0.2",

Cuba akses 172.17.0.2 dalam penyemak imbas dan anda boleh melihat halaman alu-aluan nginx. Ini bermakna pemetaan port dan peraturan tembok api adalah betul pada masa ini. Masalahnya ialah dengan tetapan alamat rangkaian tempatan.

Penyelesaian:

Ubah suai fail konfigurasi nginx, tambahkan nod pelayan dalam fail konfigurasi, nama hos ialah alamat IP setempat, seperti berikut:

pelayan {

}

Selepas pengubahsuaian selesai, muat semula fail konfigurasi nginx:

listen 80 default_server;
listen [::]:80 default_server;

server_name localhost;

root /var/www/html;
index index.html index.htm;

location / {
    try_files $uri $uri/ =404;
}

# 新增的本机IP节点
server {
    listen 80;
    listen [::]:80;

    server_name <本机IP>;

    root /var/www/html;
    index index.html index.htm;

    location / {
        try_files $uri $uri/ =404;
    }
}
sudo nginx -s reload

Lawati localhost atau 127.0.0.1 sekali lagi, dalam penyemak imbas Anda boleh melihat halaman alu-aluan nginx.

Ringkasan:

Masalah yang docker berjaya dibuat tetapi tidak dapat disambungkan mungkin berkaitan dengan status sambungan rangkaian, konfigurasi tembok api sistem, tetapan alamat rangkaian tempatan, dsb. Dengan menyelesaikan masalah dan mengambil penyelesaian yang sesuai, ia boleh diselesaikan dengan lancar. Dalam penggunaan docker pada masa hadapan, jangan panik apabila anda menghadapi masalah Anda mesti bertenang, semak log dengan teliti, tentukan masalah, dan kemudian merumuskan penyelesaian Hanya dengan cara ini anda boleh menguasai teknologi docker dengan lebih baik dan meningkatkan kecekapan pembangunan .

Atas ialah kandungan terperinci Apakah yang perlu saya lakukan jika docker berjaya dibuat tetapi tidak dapat menyambung?. 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