我很难找到一种方法来访问Postgres数据库内Dokku的contaner(基于docker)从外部的机器使用pgAdmin。有办法做到吗?我需要使用不同的客户端吗?我正在使用dokku postgres:expose命令暴露数据库。
dokku postgres:expose
gxwragnw1#
要与pgadmin连接,您可以从DATABASE_URL获取所有必要的信息。
➜ ~ dokku postgres:info your-database-db DSN: postgres://postgres:bf8f1cb443c35cd1ae0a58617ef348cd@dokku-postgres-your-database-db:5432/your_database_db
因为dokku和Heroku有着相同的基础,所以可以提取信息来连接pg数据库。重要的考虑是dokku生成一个随机端口来公开数据库。你可以得到一个随机端口或设置任何你想要的。
[database type]://[username]:[password]@[host]:[port]/[database name]
公开数据库并获取真实的端口:
➜ ~ dokku postgres:expose your-database-db ! Service is already started -----> Service your-database-db exposed on port(s) 17825
现在,在您的pg管理中,您将添加下一个信息,并希望连接没有问题。
username: postgres password: bf8f1cb443c35cd1ae0a58617ef348cd hostname: Your-Dokku-Host-URL (Ex. example.com or IP of your dokku server) port: 17825
此外,例如,如果您在AWS EC2中运行dokku,则需要允许访问示例上的此端口,并在此示例关联的 Security Group 的 Inbound 部分中添加 Custom TCP Rule。
bq3bfh9z2#
也可以使用ssh隧道。dokku postgres:list用于所有postgres示例dokku postgres:info DBNAME检查暴露的端口(如果有)和凭据
dokku postgres:list
dokku postgres:info DBNAME
DNS
Exposed ports
Internal IP
在您的postgres客户端中,选择一个带有ssh隧道或使用putty等转发端口的选项。
2条答案
按热度按时间gxwragnw1#
要与pgadmin连接,您可以从DATABASE_URL获取所有必要的信息。
因为dokku和Heroku有着相同的基础,所以可以提取信息来连接pg数据库。重要的考虑是dokku生成一个随机端口来公开数据库。你可以得到一个随机端口或设置任何你想要的。
公开数据库并获取真实的端口:
现在,在您的pg管理中,您将添加下一个信息,并希望连接没有问题。
此外,例如,如果您在AWS EC2中运行dokku,则需要允许访问示例上的此端口,并在此示例关联的 Security Group 的 Inbound 部分中添加 Custom TCP Rule。
bq3bfh9z2#
也可以使用ssh隧道。
dokku postgres:list
用于所有postgres示例dokku postgres:info DBNAME
检查暴露的端口(如果有)和凭据DNS
作为凭据,如前所述Exposed ports
-检查应用程序是否查看InternetInternal IP
-主机IP,可通过ssh使用在您的postgres客户端中,选择一个带有ssh隧道或使用putty等转发端口的选项。