Ausführen eines Docker-Containers, der Datenverkehr vom Host akzeptiert

8

Ich habe die folgende Konfiguration:
Dockerfile

%Vor%

Das run-apache.sh-Skript:

%Vor%

Dann baue ich das Bild mit:

%Vor%

dann

%Vor%

Wenn ich dann versuche, den Container auszuführen, der Verbindungen vom Host im Port 80 akzeptiert, bekomme ich Folgendes:

%Vor%

Irgendwelche Hilfe?

    
eduartua 10.05.2015, 21:28
quelle

2 Antworten

7

Der Fehler scheint ziemlich klar zu sein:

  

FATA [0002] Fehlerantwort vom Daemon: Container kann nicht gestartet werden 67ed31b50133adc7c745308058af3a6586a34ca9ac53299d721449dfa4996657: Fehler beim Starten von userland proxy: listen tcp 0.0.0.0:80: bind: Adresse wird bereits verwendet

Es heißt "Adresse wird bereits verwendet". Das bedeutet, dass etwas auf Ihrem System - wahrscheinlich ein Webserver wie Apache - bereits Port 80 überwacht. Sie müssen entweder:

  • Stoppen Sie den Webserver,
  • Wählen Sie einen anderen Host-Port im -p -Argument als docker run oder
  • einfach das Argument -p ablegen.

Da Docker die angeforderte Portweiterleitung nicht einrichten kann, wird der Container nicht gestartet.

Mit den Optionen (a) und (b) kann der Container an Port 80 auf dem Host gebunden werden. Dies ist nur notwendig, wenn Sie von einem anderen als Ihrem Host auf den Container zugreifen möchten.

Option (c) ist nützlich, wenn Sie nur über den Docker-Host auf den Container zugreifen möchten, den Container in Ihrem lokalen Netzwerk jedoch nicht verfügbar machen möchten. In diesem Fall würden Sie die Container-IP-Adresse verwenden, die vom Andockfenster zugewiesen wurde, die Sie abrufen können, indem Sie docker inspect ausführen und die Ausgabe lesen oder einfach:

ausführen %Vor%     
larsks 11.05.2015, 03:50
quelle
7

Es wird gesagt, dass Port 80 beschäftigt ist ... führe dies aus, um zu sehen, wer Port 80 benutzt

%Vor%

blättern Sie ganz nach rechts, um die PID des Prozesses zu sehen, der Port 80 hält ... seine PID 1380, also machen wir eine Prozessliste, um diese PID zu sehen

%Vor%

so teardown diesen beleidigenden Prozess, um den Port 80 freizugeben

%Vor%

__ oder __

%Vor%     
Scott Stensland 02.05.2016 21:16
quelle

Tags und Links