我创建了一个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?请帮帮忙。THX ^^
问候
发布于 2021-07-08 12:00:15
我已经复制了你的docker-compose文件,一切都很好。我猜postgres和pgadmin是如何从头开始交互的,这是一种误解。pgadmin只是你可以连接到postgres数据库的前端,它不会自动搜索任何现有的postgres服务器。
我可以使用这个主机和端口在pgadmin中添加服务器: postgres:5432,因为在docker中会将服务名解析为另一个服务pgadmin的主机名postgres。

重新启动组合时,此配置将丢失,因为未指定保存配置的卷。因此,您必须遵循Importing-servers中的步骤,并在每次开始合成时重复这些步骤。例如:构建您自己的pgadmin映像,用于指定启动时要导入的json
build: property指定源发布于 2021-07-08 16:28:09
好了,睡了一夜之后,我发现了问题所在。对于服务器主机,我写的是db名称,而不是真正的容器名称。所以pgAdmin找不到容器。
祝您今天愉快。:)
https://stackoverflow.com/questions/68291636
复制相似问题