【问题标题】:Accessing Postgres database inside Dokku container from outside从外部访问 Dokku 容器内的 Postgres 数据库
【发布时间】:2016-01-18 09:33:23
【问题描述】:

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

【问题讨论】:

    标签: postgresql dokku


    【解决方案1】:

    要与 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 版本 0.19.6):dokku postgres:expose your-database-db PORT
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-02-04
    • 1970-01-01
    • 1970-01-01
    • 2020-11-30
    • 1970-01-01
    • 1970-01-01
    • 2017-11-30
    相关资源
    最近更新 更多