2016-04-10 20 views
5

Ich habe this tutorial for beginners about docker verfolgt, die Sie im Grunde anweist, einen Apache-Container zu erstellen und einen Localhost-Port dem auf dem Container zuzuordnen. Wenn ich versuchen, localhost: 80 verbindet es nicht, obwohl der Container läuft und läuft. Ich habe sogar eine Regel in der Firewall gemacht, um die Verbindung zu Port 80 zu erlauben, konnte aber nicht mit dem localhost verbunden werden.kann nicht auf Apache auf Docker von meinem localhost zugreifen

Irgendwelche Ideen?

+0

was Befehl tut 'Docker Logs zeigen CONTAINER_ID' – mainframer

+0

@mainframer nicht vor darüber wusste, zeigte es„AH00558: apache2: Konnte nicht zuverlässig das Fully Qualified Domain Name des Servers bestimmen, mit 172.17.0.3. Setzen Sie die Direktive 'ServerName' global, um diese Nachricht zu unterdrücken " –

+1

Versuchen Sie, dieses Apache-Problem zuerst zu beheben. Offensichtlich möchte Apache, dass Sie einen Servernamen einrichten. Verwenden Sie den Befehl 'docker exec -it CONTAINER_ID/bin/bash', um in Ihren Container zu gelangen. Folgen Sie dann diesem Artikel, um das Problem zu beheben: https://thomas.vanhoutte.be/miniblog/fix-apache-error-ah00558/ – mainframer

Antwort

6

Unter Windows/OS X wird Docker in einer virtuellen Linux-Maschine (Docker Toolbox) mit der Standard-IP-Adresse 192.168.99.100 ausgeführt. Wenn Sie also docker run -p 80:80 verwenden, um den Container-Port an den Host-Port zu binden, bindet er sich tatsächlich an den Port 80 der virtuellen Maschine. Daher ist die von Ihnen benötigte Adresse http://192.168.99.100.

Die 172.17.0.3 Adresse ist die Adresse des Behälters Docker innerhalb dass virtuelle Maschine, und ist nicht zugänglich direkt aus dem Windows/OS X.

1

eine Zeile in DockerFile hinzufügen, bevor Apache neu zu starten. ?

RUN echo 'ServerName localhost' >> /etc/apache2/apache2.conf 
Verwandte Themen