2016-08-26 7 views
2

Ich bin auf einem Mac (El Capitan, stabil, 10.11.6) mit Docker für Mac stabil installiert.Docker Portproblem erstellen. Docker Projekt kann nicht gestartet werden auf localhost

Ich betreibe eine einfache Javascript App auf dem offiziellen Knotenbild. Hier ist, was die Dockerfile wie folgt aussieht:

FROM node 

WORKDIR /usr/local/src 

Und hier ist der docker-compose.yml:

version: '2' 

services: 
    web: 
    container_name: myproject_dev 
    build: . 
    command: npm run development 
    ports: 
    - "1234:8000" 
    - "1235:8080" 
    - "80:80" 
    volumes: 
     - ./my-project:/usr/local/src 

Lauf docker-compose up beginnt alles normal:

myproject_dev | http://localhost:8080/webpack-dev-server/ 
myproject_dev | webpack result is served from /assets/ 
myproject_dev | content is served from /usr/local/src 

Und docker ps zeigt, dass die Ports zugeordnet sind:

CONTAINER ID  IMAGE      COMMAND     CREATED    STATUS    PORTS                NAMES 
820694f618b4  myproject_web "npm run development" 20 minutes ago  Up 20 minutes  0.0.0.0:80->80/tcp, 0.0.0.0:1234->8000/tcp, 0.0.0.0:1235->8080/tcp myproject_dev 

Aber ich kann die Projektseite im Browser nicht sehen (mit localhost:1234). Funktioniert gut, wenn ich das Projekt außerhalb des Dockers ausführen. Ein Problem mit dem Projekt ist daher ausgeschlossen.

das Versuchte folgende: 1. Verwenden Sie eine andere node Docker 2. Schalter zwischen Docker Beta- und stabilen Versionen 3. Stopp alle Host Apache/nginx Dienste

aber kein Glück :(Was bin ich hier ?

Antwort

4
..

Der Service Sie sind r Das Warten hört nur auf die Schnittstelle localhost des Containers, so dass nichts außerhalb des Containers darauf zugreifen kann. Es muss auf 0.0.0.0 hören.

+0

Also änderte ich Datei zu komponieren durch Hinzufügen: Ports: - "0.0.0.0:41000:8000" - "0.0.0.0:41001:8080" Ist das, was Sie meinen? Immer noch das gleiche Problem obwohl – fenderplayer

+1

Nein, das Problem ist mit der Anwendungskonfiguration nicht die Datei verfassen. Die Anwendung muss die standardmäßige öffentliche Schnittstelle ("0.0.0.0") und nicht "localhost" überwachen. – dnephin

+0

Sie haben Recht! Scheint so, als ob das das Problem wäre. Wird die Bewerbung weiter prüfen und dann Ihre Antwort als akzeptiert markieren. Danke – fenderplayer

0

Ping funktioniert nicht auf diese Art und Weise, es einen Host fragt, keinen Port des Host um zu testen, Ihre Fähigkeit zu einem bestimmten Port auf einem bestimmten Host zu verbinden, werden Sie wahrscheinlich so etwas wie nc -vz <host> <port> wollen

+0

Ok. Ich meinte, dass ich das Projekt index.html im Browser nicht sehen kann. Bekomme ich nur eine Nachricht, die die „localhost keine Daten haben senden“ – fenderplayer

+0

Und Ihr Befehl gibt mir dies: nc -VZ localhost 1234 1 ↵ gefunden 0 Verbände 1-Verbindungen gefunden: 1: \t flags = 82 < CONNECTED bevorzugt> \t outif lo0 \t src :: 1 Port 60274 \t dst :: 1 Port 1234 \t Rang Information nicht vorhanden \t TCP aux Informationen verfügbar Anschluss Port 1234 [TCP/search-Agent] auf localhost ist gelungen! – fenderplayer

Verwandte Themen