Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用pgAdmin连接docker容器上的postgresql映像?_Postgresql_Docker - Fatal编程技术网

如何使用pgAdmin连接docker容器上的postgresql映像?

如何使用pgAdmin连接docker容器上的postgresql映像?,postgresql,docker,Postgresql,Docker,我刚刚从GitHub克隆了一个项目,在自述文件中,它要求我运行docker compose up来运行PostgreSQL映像 我假设在运行该命令后,PostgreSQL server映像将在我的pc上的Docker容器中使用端口5432启动。然后我运行npm install和npm start来启动项目(数据库表将使用ORM框架自动创建)。然而,当我打开我的pgAdmin连接到服务器时,它说它已成功连接,但我找不到创建的那些表。这里我猜pgAdmin没有连接5432上的PostgreSQL服务

我刚刚从GitHub克隆了一个项目,在自述文件中,它要求我运行
docker compose up
来运行PostgreSQL映像


我假设在运行该命令后,PostgreSQL server映像将在我的pc上的Docker容器中使用端口5432启动。然后我运行
npm install
npm start
来启动项目(数据库表将使用ORM框架自动创建)。然而,当我打开我的pgAdmin连接到服务器时,它说它已成功连接,但我找不到创建的那些表。这里我猜pgAdmin没有连接5432上的PostgreSQL服务器(Docker映像)。。。因此,我的问题是,是否可以使用安装在本地pc中的pgAmin连接到已在运行的PostgreSQL server Docker映像,映射到本地pc的端口5432?

是的,您可能只需要从Docker容器获取Ip地址,然后运行下一个命令即可

docker ps

然后使用ID容器执行以下操作:

docker inspect ID container
从Docker配置中按IP地址搜索,并使用它从pgAdmin连接。

Docker ps--格式为“table{{.Names}\t{{.ID}}”| grep“postgres”

上面的命令将给出通过docker运行的Postgres容器的容器名称和Id列表。如果您有多个Postgres容器,请选择一个要添加到Pg Admin中的容器,并将该Postgres容器的容器id用于下一个命令

docker-inspect | grep-E-A 1“IP地址|端口”

它将提供您希望通过PG Admin连接的Postgres容器的IP地址和端口。使用该IP地址和端口通过Pg Admin进行连接

我在这里回答了这个问题: