繁体   English   中英

Docker compose 容器在 pgAdmin4 中不可见

[英]Docker compose container is not visible inside pgAdmin4

我创建了一个 docker 文件来创建一个 pgAdmin4 容器和一个 postgres 容器。

version: '3.8'

services:
 postgres:
   container_name: pg_container
   image: postgres
   restart: always
 environment:
   POSTGRES_USER: webquiver
   POSTGRES_PASSWORD: webquiver
   POSTGRES_DB: quiver_db
 ports:
   - "5432:5432"
 pgadmin:
   container_name: pgadmin4_container
   image: dpage/pgadmin4
   restart: always
   environment:
     PGADMIN_DEFAULT_EMAIL: admin@admin.com
     PGADMIN_DEFAULT_PASSWORD: admin
   ports:
     - "5050:80"

运行 docker compose up 时,我可以转到 localhost:5050 以访问 pgAdmin4 并使用我的凭据登录,您可以在代码中看到。 但是当我使用服务器的下拉菜单时,它是空的。 什么也没有创造。 而且我无法在那里创建任何服务器。 它不允许我这样做。 我收到错误:

Unable to connect to server:

could not connect to server: Connection refused
Is the server running on host "localhost" (127.0.0.1) and 
accepting
TCP/IP connections on port 5432?
could not connect to server: Address not available
Is the server running on host "localhost" (::1) and accepting
TCP/IP connections on port 5432?

请帮忙。 谢谢^^

问候

我已经复制了你的 docker-compose 文件,一切都很好。 我猜对 postgres 和 pgadmin 如何从头开始相互交互存在误解。 pgadmin 只是您可以连接到 postgres 数据库的前端,它不会自动搜索任何现有的 postgres 服务器。

我可以使用此主机和端口在 pgadmin 中添加服务器:postgres:5432 因为在 docker 内部会将服务名称解析为主机名postgres到另一个服务 pgadmin。 在此处输入图片说明

当组合重新启动时,此配置将丢失,因为没有指定持久化配置的卷。 因此,您必须遵循导入服务器中的步骤,并在每次开始合成时重复这些步骤。 例如:构建您自己的 pgadmin 映像,该映像指定要在启动时导入的 json

  • 使用 docker compose build: 属性指定源

好的,经过一夜的睡眠,我发现了问题。 对于服务器主机,我写了数据库名称而不是真正的容器名称。 所以 pgAdmin 找不到容器。

祝你今天过得愉快。 :)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM