我在我的Mac上运行本地运行的postgres.app,并希望我的本地docker容器能够连接到它。我该如何做到最好?
我发现这篇文章建议使用--add-host标志(Host port with DB to Docker container)将Docker主机的IP地址传递给容器。但是,我的笔记本电脑的IP地址经常变化。难道没有更简单的方法吗?难道没有一种简单的方法可以打开容器的本地端口吗?
答案 0 :(得分:3)
很少有事情
docker.for.mac.localhost
作为您的主机(假设您有最新的Docker for Mac,如@Pete所述)~/Library/Application Support/Postgres/var-9.6/pg_hba.conf
host all all 0.0.0.0/0 trust
listen_addresses = 'localhost'
~/Library/Application Support/Postgres/var-9.6/postgresql.conf
到
listen_addresses = '*'
或
listen_addresses = 'localhost, docker.for.mac.localhost'
答案 1 :(得分:0)
如果我们谈论的是开发人员工作站,您可以在主机网络中启动Docker容器。
docker run --net=host myContainer
因此,您的容器与您的主机在同一堆栈中运行,并且应该能够访问您的postgres.app。
答案 2 :(得分:0)
从容器中尝试连接到主机名docker.for.mac.localhost
。例如:
psql -U my_user docker.for.mac.localhost -U my_user my_database
Mac有一个不断变化的IP地址(如果你没有网络,则没有 访问)。从17.06开始,我们的建议是连接到 将解析的特殊Mac-only DNS名称
docker.for.mac.localhost
到主机使用的内部IP地址。
注意:这需要Docker for Mac >= 17.06.0-ce-mac18, 2017-06-28