2017-04-06 7 views
0

Ich bin 2 Container auf einem Server ausgeführt. Sie sind beide Docker-Container mit dem Standard-Nginx-Image.Nginx-Proxy-Problem

Ich versuche Container1 als Reverse-Proxy für Container2 zu verwenden.

Container1 ist bei IP-Adresse 172.17.0.3 Container2 ist bei IP-Adresse 172.17.0.4

wenn ich Container1 kräuseln ich die Standard-Nginx Homepage bekommen. Ich habe die Standard-Homepage für Container 2 bearbeitet, so dass es nur <p> HI </p> ist, die von einem curl auf der IP überprüft wird.

auf meinem Server etc/hosts-Datei, habe ich diese Zeile

172.17.0.3 testapp.net 

Mein Container1 /etc/nginx/conf.d/default.conf gehört diese

server { 
    listen  80; 
    server_name localhost; 
location/{ 
    root /usr/share/nginx/html; 
    index index.html index.htm; 
} 

#error_page 404    /404.html; 

# redirect server error pages to the static page /50x.html 
# 
error_page 500 502 503 504 /50x.html; 
location = /50x.html { 
    root /usr/share/nginx/html; 
} 

} 

server { 
    listen 80; 
    server_name testapp.net; 

    location/{ 
     proxy_pass http://172.17.0.4 

    } 

} 

wenn ich curl testapp.net erhalte ich die Homepage zu Container1 des nginx (Grund hallo nginx HTML-Datei) und nicht an Container2 gerichtet. Warum passiert dies?

+0

Haben Sie die nginx-Konfiguration vor dem Versuch neu geladen? –

+0

ja, ich habe die Config – PYA

+0

neu geladen Wie haben Sie die Hosts-Datei geändert? während Docker laufen oder bauen? –

Antwort

1

Ihr Problem ist also, dass Sie nur die Datei/etc/hosts auf Ihrem Server ändern, nicht die im Docker-Container. Der Container hat ein eigenes Dateisystem und ein eigenes Netzwerk. Deshalb funktioniert Ihre Änderung nicht.

Die Lösung besteht darin, die/etc/hosts in Ihrem Container während des Dockerlaufs zu ändern.

docker run --add-host testapp.net:172.17.0.3 your_image 
+0

Wenn ich das mache, bekomme ich docker: 'Fehler Antwort vom Daemon: oci Laufzeitfehler: container_linux.go: 247: Starten des Containerprozesses verursacht "exec: \" - add-host \ ": ausführbare Datei nicht in $ PATH gefunden" .' – PYA

+0

@pyjg Was ist Ihre Docker-Version? –

+0

Docker Version 17.03.0-CE, – PYA