sql >> データベース >  >> NoSQL >> MongoDB

DockerのSpringBootがDockerのMongoに接続していません

    編集:

    私はスプリングブート開発を行ったことがありませんが、表示されていると言っているエラーは、mongoの問題とはまったく関係がない可能性があります。ただし、mongo接続が失敗する理由については次の説明があります:

    docker-compose (あなたの場合のように)ファイルで仮想ネットワークが指定されていない場合は、仮想ネットワークを作成します。

    すべてのアプリケーションはこのネットワーク内で実行され、互いに完全に分離されています。そのため、localhost スプリングブートコンテナでは、実際にはそれ自体を指します。スプリングブートアプリケーションがmongoを期待していることを意味します コンテナ内で実行されるインスタンス(そうではなく、別のコンテナ内にあります)。

    これは、データベースとアプリケーションの両方がラップトップのネットワークで実行されている場合は問題ありませんでした。ただし、前述のように、現在はdocker-composeで実行されています。 ネットワーク、完全に分離されています。

    ただし、docker-compose 本当に賢いです!サービス名(この場合はmongo)を使用するコンテナごとにDNSを作成します およびspringdocker-composeで指定 ネットワーク内のコンテナに簡単にアクセスできるようにするファイル。

    したがって、spring.data.mongodb.uri=mongodb://localhost:27017/dbを変更できるはずです。 spring.data.mongodb.uri=mongodb://mongo:27017/dbへ それで接続できるはずです。



    1. mongodbの数値に対するsql'like'操作

    2. C#を使用して特定のドキュメントMongodbにフィールドが存在するかどうかを確認する方法は?

    3. MongoDBコレクション内の一意のドキュメント

    4. Mongodb-シャーディング時に_idはグローバルに一意である必要があります