Postgresql 如何使docker容器可以访问postgres.app db?
我让postgres.app在Mac上本地运行,希望本地docker容器能够连接到它。我怎样才能最好地做到这一点Postgresql 如何使docker容器可以访问postgres.app db?,postgresql,docker,docker-compose,postgres.app,Postgresql,Docker,Docker Compose,Postgres.app,我让postgres.app在Mac上本地运行,希望本地docker容器能够连接到它。我怎样才能最好地做到这一点 我发现这篇文章建议使用--addhost标志()将Docker主机的IP地址传递给容器。然而,我的笔记本电脑的IP地址经常变化。难道没有更简单的方法吗?难道没有一种简单的方法可以打开容器的本地端口吗?如果我们谈论的是开发人员工作站,您可以在主机网络内启动Docker容器 docker run --net=host myContainer 因此,您的容器与主机在同一堆栈中运行,并且应
我发现这篇文章建议使用--addhost标志()将Docker主机的IP地址传递给容器。然而,我的笔记本电脑的IP地址经常变化。难道没有更简单的方法吗?难道没有一种简单的方法可以打开容器的本地端口吗?如果我们谈论的是开发人员工作站,您可以在主机网络内启动Docker容器
docker run --net=host myContainer
因此,您的容器与主机在同一堆栈中运行,并且应该能够访问您的postgres.app。从您的容器中,尝试连接到hostname
docker.for.mac.localhost
。例如:
psql -U my_user docker.for.mac.localhost -U my_user my_database
:
Mac的IP地址不断变化(如果没有网络,则没有IP地址)
访问权限)。从17.06开始,我们建议连接到
仅限Mac的特殊DNS名称docker.for.Mac.localhost
将解析
主机使用的内部IP地址
注:这需要Docker for Mac=17.06.0-ce-MAC182017-06-28
几件事
- 使用
作为您的主机(这假设您有@Pete提到的最新mac docker)docker.for.mac.localhost
- 确保
~/Library/Application Support/Postgres/var-9.6/pg_hba.conf中有这样的记录
托管所有0.0.0.0/0信任
- 在
~/Library/Application Support/Postgres/var-9.6/postgresql.conf中更改此行
listen\u addresses='localhost'
listen\u addresses='*'
或
listen\u addresses='localhost,docker.for.mac.localhost'
您还可以在docker容器的子网络中使用主机的网络地址,默认情况下为172.17.0.1
。它在Linux主机上运行得很好,但我不确定它在Mac上是否能正常工作。@bekce听起来我想试试。关于如何在docker容器的子网中使用我主机的网络地址,有什么建议吗?好吧,只要尝试一下docker run-it--rm ubuntu,一旦进入:apt update&&apt install telnet&&telnet 172.17.0.1 5432
,看看它是否可以连接。谢谢!我知道怎么做了,然后。。。连接被拒绝。