【问题标题】:how to connect pgadmin container to host system localhost postgres [duplicate]如何将pgadmin容器连接到主机系统localhost postgres [重复]
【发布时间】:2021-12-04 09:05:10
【问题描述】:

我将 pgAdmin4 docker 映像拉入我的 linux debian 机器并按照指定的过程 here 配置容器。我运行docker run -p 8000:8000 --env-file ./pgadmin_docker_env.list -d dpage/pgadmin4。为清楚起见,命令中指定的 pgadmin_docker_env.list 包含环境变量::PGADMIN_DEFAULT_EMAIL=my_email@example.com PGADMIN_DEFAULT_PASSWORD=my_password。当容器以分离模式运行时,我在 Web 浏览器中运行 localhost:8080 以在服务器模式下访问 pgAdmin 4。但是,我无法从 pgadmin 内部创建到 localhost postgres 数据库的服务器连接。输入连接参数后出现以下错误(如下图所示) Unable to connect to server: connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused Is the server running on that host and accepting TCP/IP connections?

更新 我用 host.docker.internal 代替了 localhost,但仍然出现错误

Unable to connect to server: could not translate host name "host.docker.internal" to address: Name does not resolve

【问题讨论】:

  • 您要连接到哪个localhost? (容器外的主机系统;pgadmin 容器;单独的 PostgreSQL 容器;我的笔记本电脑?所有这些东西单独认为它们是 localhost
  • 主机系统localhost

标签: postgresql docker containers database-connection pgadmin-4


【解决方案1】:

localhost 在这种情况下是指 PgAdmin 容器,其中没有运行 Postgres 实例。

您想从容器连接到在主机上运行的 Postgres(据我所知?)所以使用 host.docker.internal 而不是 localhost

【讨论】:

    【解决方案2】:

    如果你已经完成了,你可以跳过一个步骤

    1. 使用 psql,使用以下命令更改默认 postgres 用户 postgres 的身份验证凭据
    sudo -u postgres psql
    ALTER USER postgres PASSWORD 'newPassword';
    

    或者,您还可以使用CREATE ROLE user_name WITH LOGIN SUPERUSER CREATEDB CREATEROLE REPLICATION; 为您的当前帐户创建一个超级用户

    1. 修改/etc/postgresql/13/main/pg_hba.conf 并添加 host all all 0.0.0.0/0 md5 到文件末尾

    2. 修改 pgadmin_docker_env.list 文件以包含您选择的端口

    PGADMIN_LISTEN_PORT=8000
    
    1. 停止之前运行的容器 pgadmin docker stop pgadmin 并移除容器docker rm pgadmin。然后运行docker run --env-file ./pgadmin_docker_env.list --network="host" --name pgadmin dpage/pgadmin4 以主机网络模式运行容器。见more on host network mode

    2. 在您的网络浏览器中运行 localhost:8000 并使用与屏幕截图中相同的连接参数创建服务器连接。

    【讨论】:

    • (请注意,主机网络在 MacOS 或 Windows 系统上不起作用;该选项被接受,但网络进出容器会静默失败。)
    • 是的,该解决方案已在 Linux Debian 机器上进行了测试。
    猜你喜欢
    • 1970-01-01
    • 2014-09-15
    • 1970-01-01
    • 2018-07-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-11
    • 2018-11-28
    相关资源
    最近更新 更多