sql >> データベース >  >> RDS >> PostgreSQL

Dockerを使用してWebアプリを起動すると、Postgresql DBに接続できませんか?

    localhost:5432に接続できないのはなぜですか?

    コンテナの/etc/hostsをキャットします

    $ sudo docker exec -it [container] cat /etc/hosts
    

    Dockerネットワークの場合はbridge デフォルトでは、localhost 内部はコンテナ自体を指します(Dockerのデフォルトブリッジネットワーク )。その後、5432がありません コンテナで聞く:

    $ sudo docker exec [container] nc -v -z localhost 5432
    

    解決策1.configxml内に「localhost:5432」をハードコーディングする場合、最も簡単な方法は、オプション「--net=host」を使用してコンテナーを作成することです。

    $ sudo docker run --net=host -it ...
    

    解決策2.localhostを変更します コンテナ内のDockerホストIPの
    • dockerホストIPを取得
      $ sudo docker inspect -f '{{ .NetworkSettings.Gateway }}' 
      192.168.5.1
    • コンテナを入力します:
      $ sudo docker exec -it [container] /bin/bash
    • ファイル/etc/hostsを編集します ローカルホストをdockerhost ipにポイントします :
      $ sudo vim /etc/hosts
      192.168.5.1 localhost

    解決策3.localhostの代わりにエイリアスを使用するようにdb構成ファイルを変更します :

    connectionURL="jdbc:postgresql://DB_ALIAS/admin?stringtype=unspecified"
    次に、DB_ALIASを追加します コンテナのホストへ:
    $ sudo docker run --add-host DB_ALIAS:192.168.5.1 -it [image] ...
    


    1. PL / SQL:2つの日付の違い

    2. mysqlクエリを変換してormを続編する方法

    3. TNSエラーのため、データベースからエンティティデータモデルを更新できません

    4. 番号欄を変更