編集:
私はスプリングブート開発を行ったことがありませんが、表示されていると言っているエラーは、mongoの問題とはまったく関係がない可能性があります。ただし、mongo接続が失敗する理由については次の説明があります:
docker-compose (あなたの場合のように)ファイルで仮想ネットワークが指定されていない場合は、仮想ネットワークを作成します。
すべてのアプリケーションはこのネットワーク内で実行され、互いに完全に分離されています。そのため、localhost スプリングブートコンテナでは、実際にはそれ自体を指します。スプリングブートアプリケーションがmongoを期待していることを意味します コンテナ内で実行されるインスタンス(そうではなく、別のコンテナ内にあります)。
これは、データベースとアプリケーションの両方がラップトップのネットワークで実行されている場合は問題ありませんでした。ただし、前述のように、現在はdocker-composeで実行されています。 ネットワーク、完全に分離されています。
ただし、docker-compose 本当に賢いです!サービス名(この場合はmongo)を使用するコンテナごとにDNSを作成します およびspring )docker-composeで指定 ネットワーク内のコンテナに簡単にアクセスできるようにするファイル。
したがって、spring.data.mongodb.uri=mongodb://localhost:27017/dbを変更できるはずです。 spring.data.mongodb.uri=mongodb://mongo:27017/dbへ それで接続できるはずです。