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

DockerのSpringbootコンテナにMongodbを接続できません

    問題

    間違ったIP/ホスト名でDBにアクセスしようとしています。ご覧のとおり、localhostにアクセスします 春のコンテナはそのコンテナに解決され、27017はありません そこで聞いているポート。 Dockerホストでjarを実行すると、27017になります。 利用可能なポート、それが機能する理由です。

    ソリューション

    --hostnameを使用できます docker runのフラグ コマンドを使用してDBコンテナのホスト名を設定し、ホスト名を使用してSpringコンテナから接続できるようにします。

    ただし、より良い解決策は、docker-composeファイルを使用し、docker-compose upを使用してコンテナーを起動することです。 。

    まず第一に

    を使用します
    MongoClient mongo = new MongoClient("db", 27017));
    

    Springコードで、コードのイメージを作成します。

    その後、以下の手順に従ってコンテナを起動します。

    A)作成ファイルを作成する

    docker-compose.ymlという名前のファイルを作成します 次の内容で:

    version: "2.1"
    services:
      app:
        # replace imageName with your image name (block in your case)
        image: imageName:tag
        ports:
          - 9876:4000 # Replace the port of your application here if used
        depends_on: 
          - db
      db:
        image: mongo
        volumes:
          - ./database:/data
        ports:
          - "27017:27017"   
    

    B)作成ファイルを実行します

    次のコマンドを実行して、作成ファイルを実行します。docker-compose up -d




    1. 一意のインデックスでのmongo3の重複-dropDups

    2. 帆-帆0.10のmongo認証エラー

    3. spring-mongo-1.0.xsdエラー

    4. mongodbでの日付比較