【问题标题】:PgAdmin not working with Postgres containerPgAdmin 不使用 Postgres 容器
【发布时间】:2020-12-28 23:37:04
【问题描述】:

我正在使用以下命令连接到 postgresql docker 服务:

docker create --name postgres-demo -e POSTGRES_PASSWORD=Welcome -p 5432:5432 postgres:11.5-alpine
docker start postgres-demo
docker exec -it postgres-demo psql -U postgres

我可以成功连接到 postgresql 容器服务

现在我想连接到 PgAdmin4 对 postgres 数据库中的现有数据进行一些查询 但是我一直有这个错误

我使用的 IP 地址是我从 docker inspect DOCKERID 中提取的地址

我已经在 Windows 上重新启动了 postgresql 服务,但没有任何反应。我做错了什么?

谢谢

【问题讨论】:

    标签: postgresql docker pgadmin postgresql-9.5


    【解决方案1】:

    其实docker inspect(172.17.0.2)得到的只是容器的ip,要访问容器中的服务,需要端口绑定主机的端口到容器的端口。

    我看到你已经使用-p 5432:5432 来做到这一点,所以请使用ip a s 获取主机的IP,然后如果你得到例如10.10.0.186,然后使用这个主机ip访问服务,使用5432作为端口。

    要为我们的容器发布端口,我们将在 docker run 命令上使用 --publish 标志(简称 -p)。 --publish 命令的格式为 [host port]:[container port]。因此,如果我们想将容器内的 8000 端口暴露给容器外的 3000 端口,我们会将 3000:8000 传递给 --publish 标志。

    一张图让你了解docker网络的拓扑结构,仅供参考:

    【讨论】:

      【解决方案2】:

      您应该尝试连接到:

      host: 0.0.0.0
      port: 5432
      

      当您的 docker 容器启动并运行时。

      【讨论】:

      • 我需要关闭我的 postgresql 服务并且只有我的 docker 启动并运行
      猜你喜欢
      • 1970-01-01
      • 2020-04-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-04
      • 2022-07-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多