docker员postgres pgadmin本地连接

我用nginx,php和postgres创build了一个ubuntu镜像。

我想连接我当前图像中的postgres数据库与位于本地机器上的pgadmin

我已经尝试使用docker督察尝试使用图像IP来与我的本地pgadmin连接,但没有太多的成功。 我也尝试过在本地configuration一些端口来连接工作。

这是一个有效的问题,不知道为什么人们觉得“似乎不可能回答这个问题”。

所以,下面是我如何做你想做的事情:

  1. 从Docker Hub中取出postgres镜像

    docker pull postgres:latest

  2. 使用下面的命令运行容器

    docker run -p 5432:5432 postgres

  3. 使用docker的inspect命令查找IP

  4. 使用该IP,PORT,用户名和密码连接到PGADMIN中

  5. 你也可以像下面这样做一个简单的telnet来确认你是否可以访问docker postgres容器:

    telnet IP_ADDRESS 5432

我在windows 10上运行docker for windows 1.12.6(9655)所做的成功,步骤如下:

  1. 拉最新的postgres

    docker拉postgres:最新

  2. 运行postgres容器

    docker run -d -e POSTGRES_USER = user -e POSTGRES_PASSWORD = password123 –name db-my -p 5432:5432 –restart = always postgres

  3. 然后从pgadmin网站安装最新版本的pgAdmin4

  4. 运行pgAdmin 4创build新的服务器,input如下:主机:127.0.0.1端口:5432用户名:用户密码:password123

  5. 然后一切正常,连接到dockerpostgres实例成功。

您必须将容器中的postgres端口暴露给本地系统。 你可以这样运行你的容器:

docker run -p 5432:5432 <name/id of container>

当与您的GUI客户端或CLI连接时,即使您的IP地址是本地主机IP地址,也请确保使用不是本地主机的IP地址。

docker ps会给你你的postgres容器的IP地址。