Heim  >  Artikel  >  Betrieb und Instandhaltung  >  Lassen Sie uns über die Lösung des Problems sprechen, dass Docker Port 80 nicht verwenden kann

Lassen Sie uns über die Lösung des Problems sprechen, dass Docker Port 80 nicht verwenden kann

PHPz
PHPzOriginal
2023-04-10 14:19:273676Durchsuche

Docker ist eine Open-Source-Anwendungscontainer-Engine, die Anwendungen zur Bereitstellung, Ausführung und Verwaltung einfach in einen Container packen kann. Wenn Sie jedoch Docker zum Bereitstellen von Anwendungen verwenden, tritt manchmal das Problem auf, dass Port 80 nicht verwendet werden kann. In diesem Artikel werden einige Lösungen zur Lösung dieses Problems vorgestellt.

Problembeschreibung

Wenn Sie Docker zum Bereitstellen einer Anwendung verwenden und die Anwendung auf Port 80 ausgeführt werden muss, wird normalerweise die folgende Fehlermeldung angezeigt:

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

Diese Fehlermeldung weist darauf hin, dass andere Prozesse bereits Port 80 verwenden, also Docker Dieser Port kann nicht verwendet werden.

Lösung

Hier finden Sie mehrere Möglichkeiten, das Problem zu lösen, dass Docker Port 80 nicht verwenden kann.

1. Stoppen Sie den Prozess, der Port 80 belegt.

Wir können den Prozess anzeigen, der Port 80 belegt, und den Prozess stoppen, damit Docker diesen Port verwenden kann. Mit den folgenden Schritten können Sie verhindern, dass der Prozess Port 80 auf dem Linux-System belegt:

  1. Führen Sie den folgenden Befehl aus, um die Prozess-ID anzuzeigen, die Port 80 belegt:

    sudo lsof -i:80
  2. Zeigen Sie den entsprechenden Prozess mit der Prozess-ID an:

    sudo ps -p [PID]
  3. Stoppen Sie den Prozess:

    sudo kill [PID]

2. Ändern Sie den von Docker zugeordneten Port.

Zusätzlich zum Stoppen des Prozesses, der Port 80 belegt, können Sie auch den von Docker zugeordneten Port ändern, um einen Konflikt mit dem Prozess zu vermeiden, der Port 80 belegt.

Angenommen, wir haben die Anwendung lokal auf Port 8080 überwacht und möchten den 80-Port des Docker-Containers dem lokalen 8080-Port zuordnen, dann können wir den folgenden Befehl verwenden, um den Docker-Container zu starten:

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

Auf diese Weise, Docker wird Port 80 dem lokalen Port 8080 zuordnen, sodass wir im Browser auf die Anwendung zugreifen können.

3. Nginx-Proxy verwenden

Eine andere Möglichkeit, das Problem zu lösen, dass Docker Port 80 nicht verwenden kann, ist die Verwendung von Nginx-Proxy. Wir können Nginx so konfigurieren, dass es Port 80 überwacht und Datenverkehr an andere Ports im Docker-Container weiterleitet. Hier ist ein einfaches Konfigurationsbeispiel:

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;
        }
    }
}

In diesem Beispiel lauscht Nginx auf Port 80 und leitet Datenverkehr an den Docker-Container auf Port 8080 weiter.

Zusammenfassung

Die oben genannten sind drei Methoden, um das Problem zu lösen, dass Docker Port 80 nicht verwenden kann. Sie können die Methode auswählen, die entsprechend Ihrer tatsächlichen Situation zu Ihnen passt. Wenn Sie Docker zum Bereitstellen von Anwendungen verwenden, müssen Sie auf Portkonflikte achten, um unnötige Probleme zu vermeiden.

Das obige ist der detaillierte Inhalt vonLassen Sie uns über die Lösung des Problems sprechen, dass Docker Port 80 nicht verwenden kann. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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