postgresql 从外部访问Dokku容器内的Postgres数据库

30byixjq  于 2023-06-22  发布在  PostgreSQL
关注(0)|答案(2)|浏览(194)

我很难找到一种方法来访问Postgres数据库内Dokku的contaner(基于docker)从外部的机器使用pgAdmin。有办法做到吗?我需要使用不同的客户端吗?我正在使用dokku postgres:expose命令暴露数据库。

gxwragnw

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 GroupInbound 部分中添加 Custom TCP Rule

bq3bfh9z

bq3bfh9z2#

也可以使用ssh隧道。
dokku postgres:list用于所有postgres示例
dokku postgres:info DBNAME检查暴露的端口(如果有)和凭据

  • 使用DNS作为凭据,如前所述
  • Exposed ports-检查应用程序是否查看Internet
  • Internal IP-主机IP,可通过ssh使用

在您的postgres客户端中,选择一个带有ssh隧道或使用putty等转发端口的选项。

相关问题