gpt4 book ai didi

postgresql - 在Docker中建立与现有项目的PostgreSQL连接

转载 作者:行者123 更新时间:2023-12-02 18:58:18 25 4
gpt4 key购买 nike

我以前从未使用过PostgreSQL或Docker。我建立了一个已经开发的项目,使用这两种技术对其进行修改。
为了使项目在我的Linux(Pop!_OS 20.04)计算机上运行,​​我得到了这些指示(很抱歉,如果这无关紧要,但我不知道什么是重要的,什么不代表我的问题):

  • 已安装Docker CE和Docker Compose。
  • 使用git克隆了项目,并运行了git submodule initgit submodule update命令。
  • 使用以下命令初始化容器:docker-compose up -d
  • 生成了应用程序配置文件:./init.sh

  • 在所有这些应用程序都可以从http:// localhost:8080 / app /获得之后,我进入了项目目录中的以下子目录:
    enter image description here
    在dbdata中:
    enter image description here
    现在,我需要修改数据库,并且出现了问题所在,因为我不知道如何在Docker中建立与PostgreSQL的连接。
    在没有使用MySQL的Docker的项目中,我会
  • 创建本地项目的数据库“dbname”。
  • 导入项目的数据库:mysql -u username -ppassword dbname < /path/to/dbdata.sql
  • 将数据库客户端(在我的情况下为DBeaver)连接到本地数据库并执行必要的修改。

  • 为了使用PostgeSQL做类似的事情,我读到我需要
  • 安装和配置Ubuntu 20.04服务。
  • 安装PostgreSQL。
  • 配置Postgres“角色”以处理身份验证和授权。
  • 创建一个新的数据库。

  • 然后什么?
    涉及Docker时,如何设置连接以便能够从DBeaver修改数据库并查看反射(reflect)在http:// localhost:8080 / app /上的更改?
    我真的需要一台Ubuntu服务器吗?
    是否需要 psql以外的其他程序才能从命令行连接到Postgres?
    我找到了许多与Docker在PostgreSQL上本地安装有关的文章,但是所有这些文章都是从头开始解决的,它们都没有谈论如何连接到Docker内部“旧”项目的数据库。我希望这里的人可以为新手提供指导,或者推荐一篇文章,从头开始解释如何配置PostgreSQL,然后在Docker中连接到数据库。提前致谢。
    编辑:
    这是 docker ps的输出
    enter image description here

    最佳答案

    您有2种选择可以很快进入已知水域:
    在docker主机上发布postgres端口,在主机上安装任何您喜欢的postgres客户端,并按照传统方式连接到容器中托管的数据库。您将使用localhost:5433到达数据库。 <<更新: 5433是屏幕快照上发布postgres容器的端口。
    另一个选择是在docker-compose文件中添加另一个服务,以将客户端本身托管在容器中。
    这是一个最小的示例,其中我启动了两个容器:postgres和主机端口9999上公开的adminer

    version: '3'
    services:
    db:
    image: postgres
    restart: always
    environment:
    POSTGRES_PASSWORD: example

    adminer:
    image: adminer
    restart: always
    ports:
    - 9999:8080
    那么我可以在localhost:9999上访问 adminer(密码是示例):
    enter image description here
    通过 adminer连接到postgres后,就可以导入并执行所需的任何SQL查询:
    enter image description here
    一种建议是进行一次全面的演讲,以了解如何在Docker上下文中持久保存数据。性能和安全性也是您最好尽快作为该 Realm 的新手添加的主题。

    关于postgresql - 在Docker中建立与现有项目的PostgreSQL连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63477355/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com