以下是背景故事,但这里有问题:我发现如果我的docker主机上运行postgresql,我可以通过挂载为文件的域套接字在容器中连接它:
docker run -v /var/run/postgresql/:/var/run/postgresql
这感觉像是一个大的hack,所以我想知道在生产环境中是否真的糟糕。你有什么想法吗?
背景故事
背景是我在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地址来设置这个,但我不想仅仅为了这个目的运行一个脚本。
所以...我想:“使用域套接字怎么样?”