内のポートに次のdocker-compose.yml
ファイルをしていた拘束力はありませんチュートリアル:Serverは、私は1つのマシンの群れ(すなわち、1つのマスターノード、それはそれだ)がドッキングウィンドウの群れ
docker-machine create --driver virtualbox myvm1
docker-machine ssh myvm1 "docker swarm init --advertise-addr 192.168.99.100:2377"
docker-machine scp docker-compose.yml myvm1:~
docker-machine ssh myvm1 "docker stack deploy -c docker-compose.yml hellorocketstack"
docker machine ls
は私にtcp://192.168.99.100:2376
のIPを提供します。
web
プロセスのDockerファイルも8000を確実に公開します。ローカルでは、このサーバーを実行すると、ポート8000に問題なく接続されます。しかし、vm内では、私が192.168.99.100:8001
を巻くときに何の要求も受けない(同様に8000
)。私がVMを殺してマシンを完全に再起動しても、これは当てはまります。
しかし、他のサービス(例:チュートリアルのビジュアライザーなど)をインストールすると、正常に機能します。
これは私を夢中にしています!何が起こっているのか分かりますか?
また、vm内では、curl localhost:8001
(ビジュアライザでは、再マッピングされたポートで動作します)を呼び出すこともできません。どんな助けもありがとう!これをデバッグするために次のステップがありますか?
編集:nc -zv 192.168.99.100 8001
も表示されません。 (これは、ビジュアライザのために働く)
EDIT2:docker inspect CONTAINER
ショー:
"Config": {
"ExposedPorts": {
"8001/tcp": {}
},
},
"NetworkSettings": {
"Ports": {
"8001/tcp": null
},
}
取り組ん例えばdocker inspect
コマンドショーと同じものである(モジュロは、ポート番号を公開)
ウェブコンテナのログはどのように表示されますか? 'docker exec'でWebコンテナに接続すると' curl http:// localhost:8000'できますか? – BMitch
それは働いた - 私はサーバーからの応答を得た。今何? –
ドッカーサービスを停止し、 'iptables -S'を実行してルールを投稿してください。あなたのVMで 'ufw'または' selinux'または 'firewalld'が有効になっているかどうか確認してください。いくつかのVMは、デフォルトでIPTablesルールを持っていて、22ポートのみを許可しています。 –