postgresql - 在外部的Docker 容器中,连接到 PostgreSQL

  显示原文与译文双语对照的内容

我在 Docker 容器中的服务器上有 PostgreSQL 。 如何从外部连接到它,也就是从我的本地计算机? 我应应用什么设置来允许?

时间: 原作者:

你可以这种方式运行 Postgres:


docker run --name some-postgres -e POSTGRES_PASSWORD=mysecretpassword -d -p 5432:5432 postgres



现在你已经将容器的端口 5432映射到服务器的端口 5432. -p <host_port>:<container_port> .so 现在你的postgres可以从你的public-server-ip:5432 访问

要测试:运行postgres数据库( 上面的命令)


docker ps


CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES


05b3a3471f6f postgres"/docker-entrypoint.s" 1 seconds ago Up 1 seconds 0.0.0.0:5432->5432/tcp some-postgres



进入容器并创建一个数据库:


docker exec -it 05b3a3471f6f bash


root@05b3a3471f6f:/# psql -U postgres


postgres-# CREATE DATABASE mytest;


postgres-# q



转到你的本地主机( 在那里你有一些工具或者psql客户端) 。


psql -h public-ip-server -p 5432 -U postgres



( 密码 mysecretpassword )


postgres=# l



 List of databases


 Name | Owner | Encoding | Collate | Ctype | Access privileges


-----------+----------+----------+------------+------------+-----------------------


 mytest | postgres | UTF8 | en_US.utf8 | en_US.utf8 |


 postgres | postgres | UTF8 | en_US.utf8 | en_US.utf8 |


 template0 | postgres | UTF8 | en_US.utf8 | en_US.utf8 | =c/postgres 



因此,你正在从本地主机访问数据库( 它在服务器上运行在 Docker 中) 。

...