を働いている私は、私がきちんと公開サーバのIPを使用して他のホストから、例えばこのデータベースに接続することができますローカルホスト上のpostgresをdockerizedに接続することができませんが、リモート接続は
docker run -d \
--name test_db \
-v data:/var/lib/postgresql/data \
-e "POSTGRES_PASSWORD=abcdefghij" \
-e "POSTGRES_USER=testuser" \
-p 5432:5432 \
postgres
とドッキングウィンドウのPostgresのインスタンスを作成しました。
psql -U testuser -h 111.111.111.111 -d testuser // in reality I use proper IP
ただし、コンテナが実行されているのと同じホストでこれを実行する場合は、接続できません(ハングするだけです)。 postgresql.confの内部
私はpg_hba.conf(コンテナ内)
# TYPE DATABASE USER ADDRESS METHOD
local all all trust
host all all 127.0.0.1/32 trust
host all all ::1/128 trust
host all all 0.0.0.0/0 md5
ラインがあります:iptablesのの
listen_addresses = '*'
関連する行:
$ iptables -L | grep sql
ACCEPT tcp -- anywhere 172.19.0.2 tcp dpt:postgresql
が、それは、また、 172.19.0.2アドレスを使用するとローカルで動作しますが、パブリックサーバIPを使用するとハングアップします。なぜそれが当てはまるのかわかりません。私は自分のアプリケーションをDBを含む多くのホストに分散させていますが、場所によっては別のアドレスを使用したくありません。誰かがこれを手伝うことができますか?
二つのテストサーバーのような何かをしたいと思う
はArubaCloud上の普通のきれいなVPSです。関係するNATがあるかどうかはわかりませんが、そうではありません。私はiptablesでリダイレクトを試み、それがうまくいけば言う。 – Valar