如何使用 dbeaver 连接到在本地主机上运行的 docker 上设置的 Postgresql?

Rio*_*owe 6 postgresql localhost dbeaver docker

我在 docker 上运行 postgresql 数据库,将它托管在我的本地机器上。但是,当我尝试使用 DBeaver 连接到它时,出现错误:

Connection to localhost:5432 refused.
Check that the hostname and port are correct and that the postmaster is accepting TCP/IP connections.
Connection refused: connect
Run Code Online (Sandbox Code Playgroud)

以下是我在 Docker 中运行以创建我的 PostgreSQL 映像的命令:

rrowe@LAPTOP-AFM43BOB MINGW64 /c/Program Files/Docker Toolbox
$ docker run --name RiohRoweDB -e POSTGRES_PASSWORD=Charlie -d -p 5432:5432 postgres
55c78d059fdb2b19bfdd24f579eaf26ef5b00c77ead564ee7d128fd06996789d

rrowe@LAPTOP-AFM43BOB MINGW64 /c/Program Files/Docker Toolbox
$ docker exec -it RiohRoweDB bash
root@55c78d059fdb:/# psql -U postgres
psql (12.0 (Debian 12.0-2.pgdg100+1))
Type "help" for help.

postgres=# CREATE DATABASE postgresqlDB
postgres-# \q
root@55c78d059fdb:/# exit
exit

rrowe@LAPTOP-AFM43BOB MINGW64 /c/Program Files/Docker Toolbox
$ docker container ls
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES
55c78d059fdb        postgres            "docker-entrypoint.s…"   2 minutes ago       Up 2 minutes        0.0.0.0:5432->5432/tcp   RiohRoweDB
Run Code Online (Sandbox Code Playgroud)

在 DBeaver 端,我添加了一个带有以下参数的连接:

Host:localhost
Port:5432
Database:postgresqlDB
User:postgres
Password:Charlie
Run Code Online (Sandbox Code Playgroud)

当我测试连接时(连接设置中的“测试连接”按钮)

我收到以下错误:

Connection to localhost:5432 refused.
Check that the hostname and port are correct and that the postmaster is accepting TCP/IP connections.
Connection refused: connect
Run Code Online (Sandbox Code Playgroud)

我正在关注这个没有使用 DBeaver 的教程:https ://medium.com/better-programming/connect-from-local-machine-to-postgresql-docker-container-f785f00461a7

Dav*_*dox 9

如果您从官方Postgres Docker 页面访问这里,请不要忘记将端口转发标志添加-p 5432:5432到您的初始化命令中,就像 Rioh 上面所做的那样:

docker run --name RiohRoweDB -e POSTGRES_PASSWORD=Charlie -d -p 5432:5432 postgres
Run Code Online (Sandbox Code Playgroud)

还可以考虑在 Medium 上学习这个操作方法:

https://medium.com/@wkrzywiec/database-in-a-docker-container-how-to-start-and-whats-it-about-5e3ceea77e50


Rio*_*owe 3

如果您使用的是 Docker Toolbox,则主机上的程序需要使用 docker-machine ip 中的 IP 地址(通常为 192.168.99.100)来访问容器进程;本地主机将无法工作。\xe2\x80\x93 大卫迷宫

\n