Heim Betrieb und Instandhaltung Docker Was soll ich tun, wenn Docker erfolgreich erstellt wurde, aber keine Verbindung hergestellt werden kann?

Was soll ich tun, wenn Docker erfolgreich erstellt wurde, aber keine Verbindung hergestellt werden kann?

Apr 18, 2023 am 09:05 AM

Vorher geschrieben:
In diesem Artikel geht es hauptsächlich um die Gründe und Lösungen für die Docker-Erstellung, aber um das Scheitern der Verbindung. Es handelt sich um einen praktischen Artikel für Docker-Anfänger. Die Vorgänge und Lösungen im Artikel basieren auf der Ubuntu-Systemumgebung.

Bei der Verwendung von Docker gibt es Situationen, in denen Ihr Container selbst dann nicht verbunden werden kann, wenn er erfolgreich erstellt wurde. Diese Situation macht die Menschen oft sehr verzweifelt und kann das Problem nicht finden. In diesem Artikel werden anhand eines praktischen Falls die Gründe und Lösungen erläutert, warum Docker erfolgreich erstellt wurde, aber keine Verbindung hergestellt werden kann.

Fallbeschreibung:

Wir haben Docker verwendet, um einen Nginx-Container auf unserem lokalen Computer zu erstellen, aber beim Zugriff darauf konnten wir keine erfolgreiche Verbindung herstellen.
Die Schritte sind wie folgt:

  1. Docker auf dem Ubuntu-System installieren

Geben Sie den folgenden Befehl in die Befehlszeile ein:

sudo apt-get install docker.io

Nach Abschluss der Installation verwenden Sie den folgenden Befehl So starten Sie Docker:

sudo systemctl start docker

  1. Nginx-Container auf Docker erstellen

Geben Sie den folgenden Befehl in die Befehlszeile ein:

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

This Befehl bedeutet: Erstellen Sie einen Nginx-Container mit dem Nginx-Image. Der neue Container, dessen Name mynginx ist, ordnet Port 80 dem lokalen Port 80 zu und läuft im Hintergrund.

  1. Überprüfen Sie, ob der Container erfolgreich erstellt wurde.

Geben Sie den folgenden Befehl in die Befehlszeile ein:

sudo docker ps

Wenn der folgende Inhalt angezeigt wird, wurde der Container erfolgreich erstellt:

CONTAINER-ID-BILDBEFEHL ERSTELLT STATUS PORTNAMEN
aaed7c1bcccf nginx "/ docker-entrypoint.…" vor 21 Sekunden Hoch 20 Sekunden 0.0.0.0:80->80/tcp mynginx

  1. Besuchen Sie nginx

im Browser Geben Sie localhost im Browser ein, oder 127.0 .0.1. Siehe die Nginx-Willkommensoberfläche.

In einigen Fällen kann jedoch nicht auf Nginx zugegriffen werden.

Problemanalyse:

Zunächst müssen wir bestätigen, wo das Problem liegt.

  1. Sehen Sie sich die System-Firewall-Konfiguration an

Das Standard-Firewall-Tool des Ubuntu-Systems ist ufw. Sie können den folgenden Befehl verwenden, um seine Konfiguration anzuzeigen:

sudo ufw status

Wenn die Ausgabe wie folgt lautet, bedeutet dies Folgendes Die System-Firewall ist aktiviert:

Status: aktiv

An                                                      Von               ALLOW                                               Anywhere

22/tcp (v6) ALLOW Anywhere (v6)
80/tcp (v6) ALLOW Anywhere (v6)


Zu diesem Zeitpunkt haben wir Sie müssen bestätigen, ob Port 80 durch die System-Firewall zugelassen wurde. Wie Sie der obigen Ausgabe entnehmen können, wurde Port 80 Zugriff gewährt, das ist also nicht das Problem.

Netzwerkverbindungsstatus

    Wenn wir den Ping-Befehl verwenden, um den Netzwerkverbindungsstatus von 127.0.0.1 zu überprüfen, finden wir die folgende Fehlermeldung:
  1. ping: connect: Netzwerk ist nicht erreichbar

Das bedeutet, dass das Netzwerk Hier liegt ein Verbindungsproblem. Untersuchen Sie weiterhin die Ursache.

Ist die lokale Netzwerkadresse korrekt?

    Versuchen Sie, eine Verbindung zur lokalen Netzwerkadresse des Nginx-Containers herzustellen, da wir beim Erstellen des Containers Port 80 dem lokalen Port 80 zugeordnet haben, sodass wir den lokalen verwenden müssen Netzwerkadresse des Containers für den Zugriff. Sie können den folgenden Befehl verwenden, um die lokale Containeradresse anzuzeigen:
  1. sudo docker inspect mynginx |. ​​grep IPAddress

Das Antwortergebnis sollte ähnlich sein:

"IPAddress": "172.17.0.2",

Versuchen Sie es Greifen Sie im Browser auf 172.17.0.2 zu. Sie können die Nginx-Begrüßungsseite sehen. Dies bedeutet, dass die Portzuordnung und die Firewallregeln zu diesem Zeitpunkt korrekt sind. Das Problem liegt bei den lokalen Netzwerkadresseneinstellungen.

Lösung:

Ändern Sie die Nginx-Konfigurationsdatei, fügen Sie einen Serverknoten in der Konfigurationsdatei hinzu. Der Hostname ist die lokale IP-Adresse wie folgt:

Server {

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;
    }
}
Nach dem Login kopieren

}

Nachdem die Änderung abgeschlossen ist, laden Sie Nginx neu Konfigurationsdatei:

sudo nginx -s reload

Besuchen Sie localhost oder 127.0.0.1 erneut, und Sie können die Nginx-Begrüßungsseite im Browser sehen.

Zusammenfassung:

Das Problem, dass Docker erfolgreich erstellt wurde, aber keine Verbindung hergestellt werden kann, hängt möglicherweise mit dem Netzwerkverbindungsstatus, der System-Firewall-Konfiguration, den lokalen Netzwerkadresseneinstellungen usw. zusammen. Durch die Behebung des Problems und die Ergreifung geeigneter Lösungen kann es reibungslos gelöst werden. Bei der zukünftigen Verwendung von Docker müssen Sie sich beruhigen, die Protokolle sorgfältig überprüfen, das Problem ermitteln und dann eine Lösung formulieren. Nur so können Sie die Docker-Technologie besser beherrschen und die Entwicklungseffizienz verbessern .

Das obige ist der detaillierte Inhalt vonWas soll ich tun, wenn Docker erfolgreich erstellt wurde, aber keine Verbindung hergestellt werden kann?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Fragen zum Docker -Interview: Ace Ihr DevOps Engineering Interview Fragen zum Docker -Interview: Ace Ihr DevOps Engineering Interview Apr 06, 2025 am 12:01 AM

Docker ist ein Muss für DevOps-Ingenieure. 1.Docker ist eine Open -Source -Containerplattform, die Isolation und Portabilität durch Verpackung von Anwendungen und deren Abhängigkeiten in Container erreicht. 2. Docker arbeitet mit Namespaces, Kontrollgruppen und föderierten Dateisystemen. 3. Die grundlegende Nutzung beinhaltet das Erstellen, Ausführen und Verwalten von Containern. 4. Erweiterte Verwendung umfasst die Verwendung von DockerComponpose zur Verwaltung von Anwendungen mit mehreren Konten. 5. Zu den häufigen Fehlern gehören Containerausfall, Port -Mapping -Probleme und Datenpersistenzprobleme. Zu den Debugging -Fähigkeiten gehören das Anzeigen von Protokollen, das Eingeben von Containern und das Anzeigen detaillierter Informationen. 6. Leistungsoptimierung und Best Practices umfassen Bildoptimierung, Ressourcenbeschränkungen, Netzwerkoptimierung und Best Practices für die Verwendung von DockerFile.

Docker -Bände: Verwalten anhaltender Daten in Containern Docker -Bände: Verwalten anhaltender Daten in Containern Apr 04, 2025 am 12:19 AM

Dockervolumes stellt sicher, dass Daten sicher bleiben, wenn Container neu gestartet, gelöscht oder migriert werden. 1. Erstellen Sie Volumen: DockervolumecreatemyData. 2. Führen Sie den Container- und Mount-Volumen aus: Dockerrun-it-vmydata:/App/DataUbuntubash. 3. Die erweiterte Nutzung umfasst Datenaustausch und Backup.

Härtung der Docker -Sicherheit: Schutz Ihrer Container vor Schwachstellen Härtung der Docker -Sicherheit: Schutz Ihrer Container vor Schwachstellen Apr 05, 2025 am 12:08 AM

Zu den Methoden zur Verbesserung der Docker Security Enhancement gehören: 1. Verwenden Sie den Parameter-Cap-Drop, um Linux-Funktionen zu begrenzen. Diese Strategien schützen Container, indem sie die Exposition gegenüber der Verwundbarkeit reduzieren und die Fähigkeiten des Angreifers einschränken.

Verwenden von Docker mit Linux: eine umfassende Anleitung Verwenden von Docker mit Linux: eine umfassende Anleitung Apr 12, 2025 am 12:07 AM

Die Verwendung von Docker unter Linux kann die Entwicklung und die Bereitstellungseffizienz verbessern. 1. Installieren Sie Docker: Verwenden Sie Skripte, um Docker auf Ubuntu zu installieren. 2. Überprüfen Sie die Installation: Führen Sie die Sudodockerrunhello-Welt aus. 3. Basisnutzung: Erstellen Sie einen Nginx-Container-Dockerrun-Namemy-Nginx-P8080: 80-DNGinx. 4. Erweiterte Verwendung: Erstellen Sie ein benutzerdefiniertes Bild, erstellen und führen Sie mit Dockerfile aus. 5. Optimierung und Best Practices: Befolgen Sie Best Practices zum Schreiben von Dockerfiles mit mehrstufigen Builds und DockerComponpose.

Erweiterte Docker -Netzwerk: Mastering Bridge, Host & Overlay Networks Erweiterte Docker -Netzwerk: Mastering Bridge, Host & Overlay Networks Apr 03, 2025 am 12:06 AM

Docker bietet drei Hauptnetzwerkmodi: Bridge Network, Host Network und Overlay Network. 1. Das Brückennetz ist für eine Intercontainer-Kommunikation auf einem einzelnen Host geeignet und wird über eine virtuelle Brücke implementiert. 2. Das Host-Netzwerk eignet sich für Szenarien, in denen Hochleistungsnetzwerke erforderlich sind, und der Container verwendet direkt den Netzwerkstapel des Hosts. 3. Das Overlay-Netzwerk eignet sich für Multi-Host-Docker-Warm-Cluster, und die Cross-Host-Kommunikation wird durch die virtuelle Netzwerkschicht realisiert.

Docker Swarm: bauen skalierbare und belastbare Behältercluster Docker Swarm: bauen skalierbare und belastbare Behältercluster Apr 09, 2025 am 12:11 AM

Dockerswarm kann verwendet werden, um skalierbare und hoch verfügbare Containercluster zu erstellen. 1) Initialisieren Sie den Schwarmcluster mithilfe von Dockerswarminit. 2) Schließen Sie sich dem Swarm-Cluster an, um Dockerswarmjoin zu verwenden-gesprochen:. 3) Erstellen Sie einen Dienst mit DockerServicecreate-Namemy-Nginx-Replicas3nginx. 4) Bereitstellen komplexer Dienste mit DockStackdeploy-Cdocker-compose.ymlmyApp.

Docker -Überwachung: Sammeln von Metriken und Verfolgung von Behälter Gesundheit Docker -Überwachung: Sammeln von Metriken und Verfolgung von Behälter Gesundheit Apr 10, 2025 am 09:39 AM

Der Kern der Docker -Überwachung besteht darin, die Betriebsdaten von Containern zu sammeln und zu analysieren, wobei hauptsächlich Indikatoren wie CPU -Nutzung, Speicherverbrauch, Netzwerkverkehr und Festplatten -I/A enthalten sind. Durch die Verwendung von Tools wie Prometheus, Grafana und Cadvisor können eine umfassende Überwachung und Leistungsoptimierung von Containern erreicht werden.

So verwenden Sie Docker Desktop So verwenden Sie Docker Desktop Apr 15, 2025 am 11:45 AM

Wie benutze ich Docker Desktop? Docker Desktop ist ein Werkzeug zum Ausführen von Docker -Containern auf lokalen Maschinen. Zu den zu verwendenden Schritten gehören: 1.. Docker Desktop installieren; 2. Start Docker Desktop; 3.. Erstellen Sie das Docker -Bild (mit Dockerfile); 4. Build Docker Image (mit Docker Build); 5. Docker -Container ausführen (mit Docker Run).

See all articles