一、部署redis数据库
拉取镜像
docker pull redis
启动Redis容器
docker run -d --name redis-server -p 6379:6379 -v redis-data:/data redis redis-server --requirepass 123
redis版本
二、部署PostgreSQL 数据库
拉取镜像
docker pull postgres:15
创建数据存储目录、建议将数据挂载到宿主机:
mkdir -p /path/to/postgres/data
启动容器
docker run --name postgres-db -e POSTGRES_PASSWORD=123 -e POSTGRES_USER=root -p 5432:5432 -v /path/to/postgres/data:/var/lib/postgresql/data -d postgres:15
发现idea连接不上PG数据库
定位问题:
如何确认远程连接权限?
需要查看容器内 PostgreSQL 的 pg_hba.conf
配置:
1.进入运行中的 postgres 容器:
docker exec -it postgres-db bash # 假设容器名为 postgres-db
2.查看 pg_hba.conf
(路径可能因镜像不同略有差异,通常在 /var/lib/postgresql/data/
下):
cat /var/lib/postgresql/data/pg_hba.conf
检查是否有允许远程连接的规则:
若存在类似
host all all 0.0.0.0/0 md5
的配置,表示允许所有 IP 用密码(md5)连接所有数据库,此时root
可以远程连接。若只有
host all all 127.0.0.1/32 md5
,则仅允许本地连接,远程连接会被拒绝。
3.查看结果
解决问题
scram-sha-256
是较新的加密方式,部分旧驱动可能不兼容,改为更通用的 md5
即可
二、部署PostgreSQL数据库
拉取镜像
docker pull postgres:15
创建数据存储目录、建议将数据挂载到宿主机:
mkdir -p /path/to/postgres/data
启动容器
docker run -id --name=postgresql -v postgre-data:/var/lib/postgresql/data -p 5432:5432 -e POSTGRES_PASSWORD=123 -e LANG=C.UTF-8 postgres