2017-07-03 8 views
0

OS X(最新のアップデート10.12.5)のDocker(17.06)コンテナで簡単なNode.js/Express Webアプリケーションを実行しようとしています。私はlocalhost:3000でアプリに接続できず、何が間違っているのか理解できません。 ip addr | grep globalをコンソールで実行しても見つからないVMのIPアドレスに接続しようとしました。公開されているOS XのDockerポートに接続できません

私のアプリは実際には、 'Node.js Express App'というタイプの新しいプロジェクトを作成するときにJetBrains Webstormが作成するフレームワークです。ホストシステム上でこのアプリケーションをnpm start経由で実行し、localhost:3000に接続することができます。

私はそのようにようにドッカーイメージを構築しました:

docker build -t joonas/meancopy . 

を実行し、それ:

docker run -it -v `pwd`:/home/dev/src --name meancopy joonas/meancopy -p 3000:3000 

とVMのシェルでスローされた後、私はnpm startを実行すると、次を得る:

[[email protected]:~/src$ npm start 
npm info it worked if it ends with ok 
npm info using [email protected] 
npm info using [email protected] 
npm info lifecycle [email protected]~prestart: [email protected] 
npm info lifecycle [email protected]~start: [email protected] 

> [email protected] start /home/dev/src 
> node ./bin/www 

出力は、ホスト上で実行されているときと同じですが、「begin」の「npm info」行が必要ですnning。ただし、localhost:3000でこのサーバーに接続できません。

私はまた、解決策をオンラインで検索するときに見つけたので、--expose=3000--net="host"で画像を実行しようとしましたが、助けにならない(そして、私の理解がここでも必要ないはずです)。

どのようなヘルプやデバッグのアイデアも大歓迎です!

答えて

1

あなたdocker runコマンドを使用すると、この書かれている

docker run -it -v `pwd`:/home/dev/src --name meancopy joonas/meancopy -p 3000:3000 

悪い方法で、コンテナは試してみて、コンテナのプロセス・インスタンスとして -p 3000:3000実行しようとしています。 -pパラメータ の前に置く必要があります。予想通り、おそらく、Node.jsのアプリになります -

docker run -it -v `pwd`:/home/dev/src --name meancopy -p 3000:3000 joonas/meancopy 

今ドッキングウィンドウは、あなたのDockerfileで定義されたコマンドを実行します。

関連する問題