繁体   English   中英

如何使docker容器可访问postgres.app数据库?

[英]How to make postgres.app db accessible to docker container?

我在Mac上本地运行了postgres.app,并希望本地docker容器能够连接到它。 我如何最好地做到这一点?

我发现这篇文章建议使用--add-host标志( 带有DB到Docker容器的Host端口 )将Docker主机的IP地址传递到容器 但是,我的笔记本电脑的IP地址经常更改。 有没有更简单的方法? 有没有简单的方法可以打开容器的本地端口?

一些事情

  • 使用docker.for.mac.localhost作为您的主机(假设您拥有docker.for.mac.localhost提到的最新的Mac版Docker)
  • 确保~/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'

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地址正在更改(如果没有网络访问权限,则没有IP地址)。 从17.06开始,我们的建议是连接到专用于Mac的特殊DNS名称docker.for.mac.localhost ,它将解析为主机使用的内部IP地址。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM