以下のバックストーリーですが、ここに質問があります: docker ホストで postgresql を実行している場合、ファイルとしてマウントされたドメインソケットを介してコンテナー内で接続できることを発見しました。
docker run -v /var/run/postgresql/:/var/run/postgresql
これは大きなハッキングのように感じられるので、本番環境でこれが本当に恐ろしいことなのか知りたいです。考え?
裏話
バックストーリーは、dockerがpostgresqlを直接実行することを信頼していないため、dockerホストでpostgresqlを実行しているということです。
そのため、同じサーバー上で実行されている docker コンテナーからその postgresql インスタンスに接続する必要があります。私は試した:
使用する
--add-host
しかし、ホスト マシンの正しい IP を把握するために docker run をスクリプト内に配置する必要があったため、これもハッキングでした。何かのようなもの:
docker run --add-host=postgres-host:$(ip route show | awk {print $2})
私はそれをしなければならないのが好きではありませんでした。
を使ってみ
--net=host
ましたが...それは私たちが望んでいるものではありません。オーバーレイ ネットワークが必要です。そこでホストの IP アドレスを調べてコンテナー内からこれを設定しようとしましたが、この目的のためだけにスクリプトを実行するのはあまり気分が良くありませんでした。
だから...私は考えました:「ドメインソケットを使うのはどうですか?」