4

私はチュートリアルに従い、数日間 Docker を試してきましたが、「実際の」使用例を見つけることができません..

外部からコンテナと通信するにはどうすればよいですか?

私が見つけることができるすべての例は、最終的に 1 つ以上のコンテナーになり、他のコンテナーとポートを共有できますが、ホストの外部の誰も公開されたポートにアクセスできません。

このようなコンテナを持つことの要点は、少なくともそのうちの 1 つが外部からアクセスできる必要があるということではありませんか?

おそらくこれに役立つパイプワーク( https://github.com/jpetazzo/pipework )というツールを見つけました。しかし、これは、Docker for production をテストするために誰もが使用しているツールですか?

外部にコンテナと通信させるには「ハック」が必要ですか?

4

2 に答える 2

5

引数を使用して-p、コンテナーのポートをホスト マシンに公開できます。

例えば:

  sudo docker run -p80:8080 ubuntu bash

コンテナのポート 8080 をホスト マシンのポート 80 にバインドします。

したがって、ホストの URL を使用して外部からコンテナーにアクセスできます。

  http://you.domain -> losthost:80 -> container:8080

それがあなたのやりたかったことですか?それとも、何かを見逃したのかもしれません

(パラメーター-exposeは、ポートを他のコンテナー (ホストではない) にのみ公開します)

于 2014-02-03T09:20:29.473 に答える
3

この ( https://blog.codecentric.de/en/2014/01/docker-networking-made-simple-3-ways-connect-lxc-containers/ ) ブログ投稿では、問題と解決策について説明しています。

基本的に、今のところパイプワーク ( https://github.com/jpetazzo/pipework ) がコンテナ ポートを外部に公開する方法のようです...これがすぐに統合されることを願っています..

更新: この場合、責任は iptables にあり、転送されたトラフィックをブロックするルールがありました。追加する-A FORWARD -i em1 -o docker0 -j ACCEPTと解決しました..

于 2014-02-03T10:26:30.023 に答える