我在服务器上的docker容器中有Postgresql。我如何从外部,也就是从我的本地计算机连接到它?我应该应用什么设置来允许这样做?
当前回答
我已经在主机上运行postgres,不想允许网络连接,所以我在容器中运行临时postgres实例,并在两行中创建数据库:
# Run PostgreSQL
docker run --name postgres-container -e POSTGRES_PASSWORD=password -it -p 5433:5432 postgres
# Create database
docker exec -it postgres-container createdb -U postgres my-db
其他回答
你也可以通过docker exec命令访问:
$ docker exec -it postgres-container bash
# su postgres
$ psql
Or
$ docker exec -it postgres-container psql -U postgres
如果它是一个django后端应用程序,你可以这样做。
docker exec -it container_id python manage.py dbshell
这个对我很有用:
PGPASSWORD=postgres psql -h localhost -p 3307 -U postgres -d postgres
使用上面的方法加载一个初始脚本:
PGPASSWORD=postgres psql -h localhost -p 3307 -U postgres -d postgres < src/sql/local/blabla.sql
不要说我重新映射我的端口为:
docker run -p3307:5432 --name postgres -e POSTGRES_PASSWORD=postgres -d postgres
Docker ps -a来获取容器id docker exec -它的psql -U -W
由于某种原因,5432端口似乎受到保护。我把我的端口配置从5432:5432更改为5416:5432,下面的命令可以从docker容器外部连接到postgres数据库:
psql -h localhost -p 5416 -U <my-user> -d <my-database>
推荐文章
- 查询JSON类型内的数组元素
- 获得PostgreSQL数据库中当前连接数的正确查询
- 纬度和经度的数据类型是什么?
- 如何在PostgreSQL中临时禁用触发器?
- 输入文件似乎是一个文本格式转储。请使用psql
- 试图连接到https://index.docker.io时,网络超时
- 使用LIMIT/OFFSET运行查询,还可以获得总行数
- 当恢复sql时,psql无效命令\N
- 货币应该使用哪种数据类型?
- 如何添加列,如果不存在PostgreSQL?
- 如何在Postgres中获得两个字段的MIN() ?
- 为每个Docker图像查找图层和图层大小
- 如何避免在为Python项目构建Docker映像时重新安装包?
- 截断Postgres数据库中的所有表
- 如何用docker-compose更新现有图像?