Docker EXPOSEポートをホストのみに公開


99

dockerは、ポートをホストにのみ公開し、外部に公開することはできません。

mongoデータベースで実行するdockerを配置する必要があり、ホストからのみアクセスできるようにしたかったのですが、ホストポート27017をリンクする必要があります。

これは可能ですか、それともファイアウォールの定義を変更する方法しかありませんか?

回答:


140

もちろん、次のようにバインドしlocalhostます。

docker run -p 127.0.0.1:27017:27017

また、ホストは通常​​、IPを介して各コンテナと通信することもできます。docker inspect $IDネットワークIPを含むjsonダンプ(他のものと並んで)を取得するために使用します。


4
[1] docker run -p 27017:27017 -v / var / lib / mongodb / master:/ data mongo:storage_test / usr / bin / start-mongo [2] docker run -p 127.0.0.1のようなものですか? 27017:27017 ...?
ルーベン

17
2番目のオプションはlocalhostにバインドします(はい)。1つ目は、ポートを公開します。静的ポートが必要ない場合は、を使用してください127.0.0.1::27017
ZeissS 2014年

3
このソリューションはスウォームモードでは機能しないようです。このgithubの問題を
bsimpson53

1
同等のdocker-composeは単純service-name: { ... ports: [ "127.0.0.1:27017:27017" ] }ですか?
Groostav 2018

1
私のdocker-composeの問題は何ですか?localhostにのみバインドしますが、パブリックにアクセスできます。stackoverflow.com/questions/50621936/...
タラ・プラサド・グルン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.