【发布时间】:2016-01-18 09:33:23
【问题描述】:
我很难找到一种方法来使用 pgAdmin 从机器外部访问 Dokku 的容器(基于 docker)内的 Postgres 数据库。有没有办法做到这一点?我需要使用不同的客户端吗?我正在使用dokku postgres:expose 命令公开数据库。
【问题讨论】:
标签: postgresql dokku
我很难找到一种方法来使用 pgAdmin 从机器外部访问 Dokku 的容器(基于 docker)内的 Postgres 数据库。有没有办法做到这一点?我需要使用不同的客户端吗?我正在使用dokku postgres:expose 命令公开数据库。
【问题讨论】:
标签: postgresql dokku
要与 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. domain.com or IP of your dokku server)
port: 17825
另外,如果您在 AWS EC2 中运行 dokku,例如,您需要允许访问实例上的此端口,在 Inbound中添加 自定义 TCP 规则 > 此实例关联的安全组部分。
希望对你有帮助。
【讨论】:
dokku postgres:expose your-database-db PORT