[英]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
build:
属性指定源好的,经过一夜的睡眠,我发现了问题。 对于服务器主机,我写了数据库名称而不是真正的容器名称。 所以 pgAdmin 找不到容器。
祝你今天过得愉快。 :)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.