如何使Docker容器可以访问Postgres.App DB



我在Mac上在本地运行了Postgres.App,希望我的本地Docker容器能够连接到它。我该如何最好地做?

我找到了建议使用-Add-host标志(带有DB到Docker容器的主机端口)将Docker主机的IP地址传递给容器的帖子。但是,我的笔记本电脑的IP地址经常更改。没有一个更简单的方法吗?没有一种简单的方法可以打开容器的本地端口吗?

几件事

  • 使用 docker.for.mac.localhost作为主机(这是您有@pete的最新码头,如@pete所述)
  • 确保~/Library/Application Support/Postgres/var-9.6/pg_hba.conf中有这样的记录

host all all 0.0.0.0/0 trust

  • ~/Library/Application Support/Postgres/var-9.6/postgresql.conf中更改此行listen_addresses = 'localhost'

to

listen_addresses = '*'

listen_addresses = 'localhost, docker.for.mac.localhost'

如果我们在谈论开发人员工作站,则可以在主机网络内启动docker容器。

docker run --net=host myContainer

因此,您的容器与主机在同一堆栈中运行,并且应该能够访问您的postgres.app。

从您的容器中,尝试连接到主机名docker.for.mac.localhost。例如:

psql -U my_user docker.for.mac.localhost -U my_user my_database

来自文档:

Mac的IP地址更改(如果您没有网络,则没有 使用权)。从17.06开始,我们的建议是连接到 特殊的仅Mac-inly DNS名称docker.for.mac.localhost将解决 到主机使用的内部IP地址。

注意:这需要Mac >= 17.06.0-ce-mac18, 2017-06-28

的Docker

相关内容

  • 没有找到相关文章

最新更新