2017-09-17 11 views
1

DynamoDBを照会するSpringブートREST APIを構築しました.1つまたは2つのマイクロサービスとして動作するDockerコンテナを構成します。もう1つはREST APIを実行します。私はSpring Boot REST API用にコンテナを構成していますが、APIへの呼び出し時に、DynamoDBがlocalhost:8000上で実行されていても、ローカルのDynamoDBを照会することはできません。私が手にエラーがある:Dockerを使用したSpringブート+ DynamoDBローカル:localhost:8000への接続に失敗しました

Unable to execute HTTP request: Connect to localhost:8000 [localhost/127.0.0.1] failed: Connection refused (Connection refused)

そのメッセージを取得にもかかわらず、私は私のブラウザを使用してローカルホストを経由してDynamoDBのにアクセスすることができます。 APIコンテナがlocalhost:8080で実行されていても、DockerコンテナがAPIにlocalhost:8000へのアクセスを許可しないかのようです。

個別のマイクロサービスとして動作するように、どのようにコンテナを設定する必要がありますか?誰も似たような問題を以前見たことがありますか?

答えて

0

デフォルトでは、コンテナは完全に分離されており、別々のネットワーク内で実行されています。あなたは使って春のブート容器にDinamoDBコンテナをリンクする必要があります - - リンク設定:

https://deis.com/blog/2016/connecting-docker-containers-1/

+0

これは、複数のコンテナで構成されるDockerサービスを構成する場合と異なりますか、それとも悪いですか? – acs254

1

localhostのコンテナ内の実際のマシンのホストを指していません。文字通りlocalhostをドッキング・コンテナ内に使用すると、コンテナ自体を指しています。

リンク:

ドッカーはこのsitutionを扱う2つの方法を提供します。これは新しいプロジェクトでは廃止され、should be avoidedです。

ネットワーク。 DockerはDNS名(コンテナIDまたはコンテナ名)でコンテナにアクセスできるネットワークを確立できます。

way described hereにネットワークを作成し、localhostをDBコンテナの名前で置き換えてください。これで準備は整います。

+0

これは私のためには機能しません。 DynamoDBサービスを1つのコンテナを使用してローカルに起動し、ネットワークに追加してからREST APIを開始し、同じネットワークに開始します。しかし、私はまだ上記と同じエラーが発生します。 – acs254

+0

スプリングブートコンテナの接続URLを変更しましたか? –

関連する問題