我在服务器上的docker容器中有Postgresql。我如何从外部,也就是从我的本地计算机连接到它?我应该应用什么设置来允许这样做?
当前回答
这里有很好的答案,但是如果您想要postgres数据库管理的一些接口,您可以在本地计算机上安装pgAdmin,并使用其IP和postgres公开端口(默认为5432)连接到远程计算机。
其他回答
我已经在主机上运行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
要从本地主机连接,你需要添加'——net host':
docker run --name some-postgres --net host -e POSTGRES_PASSWORD=mysecretpassword -d -p 5432:5432 postgres
你可以直接访问服务器而不使用exec从你的localhost,通过使用:
psql -h localhost -p 5432 -U postgres
连接到运行postgres的本地容器
安装 psql
酿造搜索postgres
编译安装postgresql
2.
docker run --name postgres -e POSTGRES_DB=users \
-e POSTGRES_USER=john \
-e POSTGRES_PASSWORD=password \
-p 5432:5432 -d postgres
psql --host=localhost --username=john --dbname=users
在构建我的网关微服务应用程序后,我也遇到了同样的问题。无法从Heidisql连接到竞争化postgresql。
在这一刻,我已经解决了它简单地指定postgresql密码docker-compose。Yml和端口。
所以你应该找到并打开docker-compose.yml。然后您应该输入POSTGRES_PASSWORD(不要让它为空),并指定端口“5432:5432”
服务: microservice33-postgresql: 环境: - POSTGRES_USER = microservice33 - POSTGRES_PASSWORD =之后 - POSTGRES_HOST_AUTH_METHOD =信任 港口: ——5432:5432
参考链接和截图张贴
我尝试从localhost (mac)连接到postgres容器。我将docker-compose文件中的端口从5432更改为3306,并启动了容器。不知道我为什么这么做:|
然后我尝试通过PSequel和adminer连接到postgres,但连接无法建立。
切换回端口5432后,一切工作正常。
db:
image: postgres
ports:
- 5432:5432
restart: always
volumes:
- "db_sql:/var/lib/mysql"
environment:
POSTGRES_USER: root
POSTGRES_PASSWORD: password
POSTGRES_DB: postgres_db
这就是我想要分享的经验。也许有人可以利用它。
推荐文章
- PostgreSQL删除所有内容
- 为什么PostgreSQL要对索引列进行顺序扫描?
- PostgreSQL INSERT ON冲突更新(upsert)使用所有排除的值
- 如何检查一个表是否存在于给定的模式中
- 如何从DockerFile运行docker实例?
- 我是否试图连接到启用TLS的没有TLS的守护进程?
- Docker -一种访问主机USB或串行设备的方法?
- 如何将整数转换为字符串作为PostgreSQL查询的一部分?
- Psycopg2:用一个查询插入多行
- Docker:无效引用格式
- 将AWS凭证传递给Docker容器的最佳方法是什么?
- 如何在docker-compose中设置主机名?
- 为什么Docker容器映像这么大?
- PostgreSQL返回JSON数组的结果集?
- PostgreSQL通配符LIKE用于单词列表中的任何一个