通过Docker-compose连接Postgres的PgAdmin结果显示"无法连接到服务器:超时已过"。

11 浏览
0 Comments

通过Docker-compose连接Postgres的PgAdmin结果显示"无法连接到服务器:超时已过"。

我已经创建了一个带有nginx、php和postgres的Ubuntu镜像。

我想要将当前镜像中的postgres数据库与我本地机器上的pgadmin连接起来。

我尝试使用docker inspector来使用镜像IP与我本地的pgadmin进行连接,但并没有取得太大的成功。我还尝试配置本地端口以使连接工作。

0
0 Comments

在使用Docker-compose连接Postgres时出现"无法连接到服务器:超时"的错误信息。这个问题的出现原因是PgAdmin无法正确解析"host.docker.internal"主机名,导致无法连接到Postgres服务器。解决方法是通过Docker检查Postgres容器的IP地址,并将其作为PgAdmin服务器的主机名。

具体操作步骤如下:

1. 首先,在Docker中运行Postgres容器,命令如下:

docker run \
  -p 5432:5432 \
  --name container-postgresdb \
  -e POSTGRES_PASSWORD=admin \
  -d postgres

2. 然后,在Docker中运行PgAdmin容器,命令如下:

docker run \
  -p 5050:80 \
  -e "PGADMIN_DEFAULT_EMAIL=name.com" \
  -e "PGADMIN_DEFAULT_PASSWORD=admin" \
  -d dpage/pgadmin4

3. 打开PgAdmin,在浏览器中输入"localhost:80"进入PgAdmin界面。然后添加一个服务器,填写如下信息:

- 名称:container-postgresdb

- 主机:通过Docker检查Postgres容器的IP地址获取

- 数据库:postgres

- 用户名:postgres

- 密码:admin

4. 使用下面的命令检查Postgres容器的IP地址:

docker inspect container-postgresdb \
  -f "{{json .NetworkSettings.Networks }}"

5. 根据上述步骤填写正确的主机名,即可成功连接到Postgres服务器。

这种方法是通过将PgAdmin和Postgres容器放置在同一个Docker网络中,并使用正确的主机名来解决连接问题。通过这种方法,可以在使用Docker-compose进行开发和测试时方便地连接到Postgres数据库。

0
0 Comments

问题的原因是由于连接超时导致无法连接到Postgres服务器。解决方法是通过检查网络连接和确保正确配置pgAdmin来解决此问题。

问题的原因可能是以下之一:

1. 网络连接问题:检查网络连接是否正常,确保可以从pgAdmin服务器访问到Docker容器中的Postgres服务器。

2. 防火墙问题:检查防火墙设置,确保允许pgAdmin服务器连接到Postgres服务器的5432端口。

3. 配置错误:检查pgAdmin配置是否正确,包括主机名、端口、用户名和密码是否与Docker容器中的Postgres服务器一致。

解决方法:

1. 检查网络连接:确保pgAdmin服务器和Docker容器之间的网络连接正常。

2. 检查防火墙设置:确保允许来自pgAdmin服务器的流量通过5432端口。

3. 检查pgAdmin配置:确保主机名、端口、用户名和密码与Docker容器中的Postgres服务器一致。

4. 重启pgAdmin和Docker容器:尝试重启pgAdmin和Docker容器,然后再次尝试连接。

通过执行上述操作,您应该能够解决无法连接到Postgres服务器的问题。这样,您就可以通过pgAdmin成功连接到Docker中的Postgres实例了。

0
0 Comments

问题的原因:无法连接到Postgres服务器是因为在使用docker-compose连接到Postgres时出现了超时错误。

解决方法:按照以下步骤进行操作:

1. 从Docker Hub上拉取Postgres镜像:

docker pull postgres:latest

2. 使用以下命令运行容器:

docker run -p 5432:5432 postgres

3. 使用docker的inspect命令找到IP地址。

4. 使用该IP地址、端口号、用户名和密码连接到PGADMIN。

5. 你还可以使用以下命令进行简单的telnet测试,以确认是否可以访问docker中的Postgres容器:

telnet IP_ADDRESS 5432

如果你在发布端口时使用了-p 5432:5432,那么你不需要找到容器的IP地址,你可以使用主机IP地址,或者127.0.0.1或者localhost

文章如下:

在使用docker-compose连接到Postgres时出现了"无法连接到服务器:超时错误",以下是解决该问题的原因和方法:

这是一个很好的问题,不知道为什么有人认为"似乎无法回答这个问题"。所以,这是我如何做你想做的事情的方法:

1. 从Docker Hub上拉取Postgres镜像:

docker pull postgres:latest

2. 使用以下命令运行容器:

docker run -p 5432:5432 postgres

3. 使用docker的inspect命令找到IP地址。

4. 使用该IP地址、端口号、用户名和密码连接到PGADMIN。

5. 你还可以使用以下命令进行简单的telnet测试,以确认是否可以访问docker中的Postgres容器:

telnet IP_ADDRESS 5432

如果你在发布端口时使用了-p 5432:5432,那么你不需要找到容器的IP地址,你可以使用主机IP地址,或者127.0.0.1或者localhost

这个回答对我很有帮助,因此这是一个有效的问题。

我使用了-p 5432:5432将容器映射到主机,但仍然出现连接错误。我尝试使用docker inspect得到的IP地址,它可以工作。

谢谢,第三步"使用docker的inspect命令找到IP地址"解决了我遇到的问题。

当我运行docker inspect时,我没有得到IP地址,为什么?

当我尝试通过psql -h 172.17.0.2 -U postgres或通过pgadmin使用从docker inspect得到的IPAddress时,它显示无法连接到服务器。端口显示为0.0.0.0:5432->5432/tcp。我尝试了172.17.0.2172.17.0.1。但是,连接失败。请帮忙。

当我运行docker exec -it psql -U postgres时,它可以工作,所以我认为容器运行正常。然而,我仍然无法使用从docker inspect得到的IPAddressGateway访问它。你是如何使它工作的?我使用的是macOS Monterey。

0