dockerコンテナーをvpcネットワークに公開する


8

1つのコンテナーを備えたUbuntuサーバーを実行しているdockerがあります。私のサーバーのIPアドレスは、vpcで172.31.12.29/20です。ブリッジが2つあります(docker0 ans lxcbr0)。

私のコンテナのIPアドレスは172.17.0.2/16です。

ホストとコンテナは自分自身にpingできます。

私のvpcには、IPアドレスに172.31.1.233/20を持つ別のサーバーがあります。このサーバーから自分のコンテナーに到達したいだけですが、方法はわかりません。

私の2つのサーバーはpingを実行できます。

これを実行して、172.17.0.0 / 16をターゲットとするリクエストを172.31.12.29にルーティングするようにvpcルートテーブルを構成しようとしましたが、機能しません。

何か案が ?

回答:


5

コンテナーをホストしているインスタンスの送信元/宛先IPチェックも無効にする必要があるようです(IDでそのインスタンスを指すVPCルートテーブルに静的ルートが必要です)。VPCネットワークインフラストラクチャは、インフラストラクチャが各インスタンスに関連付けられたIPアドレスについて内部的に知っていることに基づいて意味をなさないIPアドレスを持つIPトラフィックをドロップします。この設定により、適用したインスタンスの機能が変更されます。NATインスタンスがある場合、これはそのインスタンスに対して既に行われていることに気づくでしょう。そうでなければ、他のインスタンスとの間で外部トラフィックをルーティングすることができません。

http://docs.aws.amazon.com/AWSEC2/latest/CommandLineReference/ApiReference-cmd-ModifyInstanceAttribute.html

これは、コンソールのインスタンスアクションにもあります。


0

コンテナーポートを公開し(docker run -p 1234:1234)、ec2インスタンスのアドレス(10.xyz:1234)に接続できます。

コンシューマー側でのアドレスのハードコーディングを回避するには、アンバサダーパターンを使用できます。https://docs.docker.com/engine/admin/ambassador_pattern_linking/

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.