postgresql - 使用 unix 域套接字从 docker 容器连接到 Postgresql 是不是很糟糕?

标签 postgresql docker docker-network

下面的背景故事,但问题是:我发现如果我在我的 docker 主机上运行 postgresql,我可以通过作为文件安装的域套接字在容器中连接到它:

docker run -v /var/run/postgresql/:/var/run/postgresql

这感觉像是一次重大黑客攻击,所以我很好奇这在生产环境中是否真的很可怕。想法?


背景故事

背景故事是我在 docker 主机上运行 postgresql,因为我不信任 docker 直接运行 postgresql。

所以我需要从在同一台服务器上运行的 docker 容器连接到该 postgresql 实例。我试过了:

  • 使用--add-host

    但这也是一个 hack,因为它需要将 docker run 放入脚本中以找出主机的正确 IP。比如:

     docker run --add-host=postgres-host:$(ip route show | awk {print $2})
    

    我不喜欢这样做。

  • 我尝试使用 --net=host,但是...这不是我们想要的。我们想要一个覆盖网络。

  • 我尝试通过在容器中查找主机的 IP 地址来设置它,但我觉得为此目的运行脚本并不好。

所以...我想:“使用域套接字怎么样?”

最佳答案

安装 socket 对我来说听起来并不像黑客。事实上,挂载 /var/run/docker.sock 是在容器内部使用 docker 命令时使用的标准方法。

关于postgresql - 使用 unix 域套接字从 docker 容器连接到 Postgresql 是不是很糟糕?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56016454/

相关文章:

sql - 如何在postgresql中插入图片?

javascript - Postgres 和 NodeJs api 中的 404 Not found 错误(可能重复)

ruby-on-rails - Postgres,全新安装的 Mavericks 和 rails。无法修复此数据库连接问题...

amazon-web-services - AWS ECS上的Kafka,如何在没有已知实例的情况下处理advertised.host?

docker - 在Docker网络中跨容器连接

docker - Azerothcore 通过 Docker 连接到互联网

mysql - 异构数据库连接

docker - docker build:返回非零代码:127 **

mysql - 无法将应用程序服务器连接到 Docker 网络中的 MySQL 数据库