docker pull postgres
下拉镜像,最新版本的更能和远程连接工具版本不兼容,要么升级工具,要么降低版本
docker run -it --name postgres --restart always -e POSTGRES_PASSWORD='root' -e ALLOW_IP_RANGE=0.0.0.0 -v //usr/local/docker/PG/data:/var/lib/postgresql -p 5432:5432 -d postgres
运行容器
–name : 自定义容器名称
POSTGRES_PASSWORD:数据库密码
-e ALLOW_IP_RANGE=0.0.0.0/0,这个表示允许所有ip访问,如果不加,则非本机 ip 访问不了
-v :进行映射,本地目录:容器内路径
-p:映射端口,宿主机端口:容器端口
最后是 镜像名称:端口号
docker exec -it postgres bash
su postgres
psql -U postgres -W
PG数据库和mysql进入略有不同 退出也是quit
然后修改文件
docker cp postgres:/var/lib/postgresql/data/pg_hba.conf /home
# TYPE DATABASE USER CIDR-ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all trust
# IPv4 local connections:
host all all 127.0.0.1/32 trust
#这里是加的
*host all all 0.0.0.1/0 md5*
# IPv6 local connections:
host all all ::1/128 trust
然后替换原文件
docker cp /home/pg_hba.conf postgres:/var/lib/postgresql/data
原先设置过0.0.0.0所以应该postgresql.conf不用改,要是连接不了,进入同样的上面位置下postgresql.conf查看
listen_addresses = ’*’对不对,如果是localhost更改即可