ホストによって Docker コンテナー アクセス ポートを開くことは可能ですか? 具体的には、ホストで MongoDB と RabbitMQ を実行しており、Docker コンテナーでプロセスを実行して、キューをリッスンし、(オプションで) データベースに書き込みたいと考えています。
ポートをコンテナーからホストに転送し (-p オプションを使用)、Docker コンテナー内から外の世界 (つまりインターネット) に接続できることはわかっていますが、RabbitMQ および MongoDB ポートを公開したくありません。ホストから外の世界へ。
編集:いくつかの明確化:
Starting Nmap 5.21 ( http://nmap.org ) at 2013-07-22 22:39 CEST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00027s latency).
PORT STATE SERVICE
6311/tcp open unknown
joelkuiper@vps20528 ~ % docker run -i -t base /bin/bash
root@f043b4b235a7:/# apt-get install nmap
root@f043b4b235a7:/# nmap 172.16.42.1 -p 6311 # IP found via docker inspect -> gateway
Starting Nmap 6.00 ( http://nmap.org ) at 2013-07-22 20:43 UTC
Nmap scan report for 172.16.42.1
Host is up (0.000060s latency).
PORT STATE SERVICE
6311/tcp filtered unknown
MAC Address: E2:69:9C:11:42:65 (Unknown)
Nmap done: 1 IP address (1 host up) scanned in 13.31 seconds
コンテナーとのインターネット接続を取得するには、このトリックを実行する必要がありました:私のファイアウォールは、docker コンテナーから外部へのネットワーク接続をブロックしています
編集:最終的に、パイプワークを使用してカスタムブリッジを作成し、サービスがブリッジIPでリッスンするようにしました。MongoDB と RabbitMQ が Docker ブリッジでリッスンする代わりに、このアプローチを採用しました。柔軟性が向上するからです。