下面是背景故事,但问题是:我发现如果我的 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 地址来设置它,但我觉得为此目的运行脚本并不好。
所以......我想:“使用域套接字怎么样?”