2016-09-08 12 views
2

docker-machine内のdocker-composeで実行されている反応容器にアクセスする際に問題があります。コンテナ内のWebページをカールさせることはできますが、ドッカーマシン(またはそのホストのブラウザで)にはアクセスできません。バックエンドのGolangコンテナは、docker-machineとホストのブラウザからアクセスできます(スニペットに示されているように、404が見つからない場合))。docker-toolboxを実行しているウィンドウでdocker-composeを使用してwebpack-dev-serverを実行しようとすると、「サーバーからの空の応答」

docker-composeログでは、すべてがスムーズに実行されているように見えますが、webpack-dev-serverは期待どおりに動作し、コンテナの外からはアクセスできません。

私は窓用のドッカーツールボックスを使用しています。

さらに、一部のスニペットの問題を詳しく説明してください。

ドッカー-コンファイル:

version: '2' 
services: 
    postgres: 
     image: postgres 
     environment: 
      - POSTGRES_PASSWORD=postgres 
    server: 
     build: ./server 
     command: gin 
     volumes: 
      - ./server:/go/src/app 
     ports: 
      - "8080:3000" 
     environment: 
      - POSTGRES_PASSWORD=postgres 
    client: 
     build: ./client 
     command: npm start 
     volumes: 
      - ./client:/usr/src/app 
      # mount node_modules as a workaround for it disappearing 
      # after adding /client as a mounted folder 
      - /usr/src/app/node_modules 
     ports: 
      - "9000:3000" 

Dockerfileノードコンテナ用:ドッカ機内部の次のコマンドの

FROM node:6.5.0-slim 

RUN mkdir -p /usr/src/app 
WORKDIR /usr/src/app 

COPY package.json /usr/src/app/ 
ENV NODE_ENV development 
RUN npm install 

出力(デフォルト):

ドッカする@デフォルト:〜$ sudoをiptablesの-tのnat -L -n

Chain PREROUTING (policy ACCEPT) 
target  prot opt source    destination 
DOCKER  all -- 0.0.0.0/0   0.0.0.0/0   ADDRTYPE match dst-type LOCAL 

Chain INPUT (policy ACCEPT) 
target  prot opt source    destination 

Chain OUTPUT (policy ACCEPT) 
target  prot opt source    destination 
DOCKER  all -- 0.0.0.0/0   !127.0.0.0/8   ADDRTYPE match dst-type LOCAL 

Chain POSTROUTING (policy ACCEPT) 
target  prot opt source    destination 
MASQUERADE all -- 172.17.0.0/16  0.0.0.0/0 
MASQUERADE all -- 172.19.0.0/16  0.0.0.0/0 
MASQUERADE all -- 172.18.0.0/16  0.0.0.0/0 
MASQUERADE tcp -- 172.19.0.2   172.19.0.2   tcp dpt:3000 
MASQUERADE tcp -- 172.19.0.3   172.19.0.3   tcp dpt:3000 

Chain DOCKER (2 references) 
target  prot opt source    destination 
RETURN  all -- 0.0.0.0/0   0.0.0.0/0 
RETURN  all -- 0.0.0.0/0   0.0.0.0/0 
RETURN  all -- 0.0.0.0/0   0.0.0.0/0 
DNAT  tcp -- 0.0.0.0/0   0.0.0.0/0   tcp dpt:8080 to:172.19.0.2:3000 
DNAT  tcp -- 0.0.0.0/0   0.0.0.0/0   tcp dpt:9000 to:172.19.0.3:3000 

ここでの主な問題来る:

ドッカする@デフォルト:〜$カール0.0.0.0は、 :9000

curl: (52) Empty reply from server 

ドッカする@ DEFA ULT:〜$カール0.0.0.0:8080

404 page not found 

ドッカする@デフォルト:ノードのコンテナ内の次のコマンドの〜$]ドッキングウィンドウのPS

CONTAINER ID  IMAGE    COMMAND     CREATED    STATUS    PORTS 
      NAMES 
f93fd1833de2  goreacttodo_client "npm start"    32 minutes ago  Up 5 minutes  0.0.0.0:9000-> 
3000/tcp goreacttodo_client_1 
ff1fa9c33b05  postgres    "/docker-entrypoint.s" 3 days ago   Up 5 minutes  5432/tcp 
      goreacttodo_postgres_1 
e4581f8e368b  goreacttodo_server "gin"     3 days ago   Up 5 minutes  0.0.0.0:8080-> 
3000/tcp goreacttodo_server_1 

出力:

root @ f93fd1833de2:/ usr/src/app#curl localhost:3000

<!doctype html> 
<html> 
<head> 
</head> 
<body lang="en"> 
<div id="react-app"></div> 
<script src="/bundle.js" type="text/javascript"></script> 
</body></html> 

非常に助けになるでしょう。

答えて

7

Webpack開発サーバーは、デフォルトでローカルホストのみをリッスンします。

のWebPACK-devのサーバー--host 0.0.0.0 --port 80

あなたはそれを公開したい場合は、あなたがを聞くために、明示的にホストを指定する必要がドッカーコンテナの外のポートをです

関連する問題