2

私は次のことに完全に行き詰まっています。

Azure VM の Docker で高速アプリをセットアップしようとしています。

1) docker-machine create -driver azure ... を使用した後、VM はすべて良好です。

2) イメージをすべて正常にビルドします。

//Dockerfile
FROM iojs:onbuild

ADD package.json package.json
ADD src src

RUN npm install

EXPOSE 8080
CMD ["node", "src/server.js"]

これが私が立ち往生している場所です:

次のすべてに加えて、さらに多くのことを試しました。

• docker run -P (Then adding end points in azure)
• docker run -p 80:8080
• docker run -p 80:2756 (2756, the port created during docker-machine create)
• docker run -p 8080:80

誰かが VIP 対内部対 docker 公開で azure のセットアップを説明できれば。

したがって、これらすべての最後に、Azure でヒットしようとするすべてのポート:

AzureVirtualIP:ALL_THE_PORT

私はいつも ERR_CONNECTION_REFUSED を返します

コンソールのログ情報を取得しているため、Express アプリが実行されていることを確認してください。

何か案は?

ありがとう

4

1 に答える 1

4

外側から始めて、デバッグを行います。

紺碧の外

<start your container on the Azure VM, then>

$ curl $yourhost:80

VM 上

$ docker run -p 80:8080 -d laslo
882a5e774d7004183ab264237aa5e217972ace19ac2d8dd9e9d02a94b221f236
$ docker ps
CONTAINER ID  IMAGE         COMMAND             CREATED        STATUS        PORTS             NAMES
64f4d98b9c75  laslo:latest  node src/server.js  5 seconds ago  up 5 seconds  0.0.0.0:80->8080  something_funny
$ curl localhost:80

これ0.0.0.0:80->8080は、ポート転送が有効であることを示しています。他のコンテナーを実行している場合、適切な権限を持っていないか、他のネットワークの問題がある場合、Docker はポートを転送せずにコンテナーを提供する場合があります。

これが機能しても最初のテストで機能しなかった場合は、VM へのポートが正しく開かれていません。Azure エンドポイントを設定する必要があるか、VM でファイアウォールを実行している可能性があります。

コンテナ内

$ docker run -p 80:8080 --name=test -d laslo
882a5e774d7004183ab264237aa5e217972ace19ac2d8dd9e9d02a94b221f236
$ docker exec it test bash
# curl localhost:8080

この最後の例では、コンテナ自体の内部に入ります。Curl がインストールされていない可能性があるため、apt-get install curl最初にインストールする必要があります。

これが機能しない場合は、Express サーバーがポート 80 でリッスンしていないため、セットアップを確認する必要があります。

于 2015-06-03T16:04:19.723 に答える