hengdin

导航

 

1. 拉取镜像

docker pull postgres

2. 创建并且启动容器

docker run -it --name postgres --restart=always -e POSTGRES_PASSWORD='abc123@commonServer' -e ALLOW_IP_RANGE=0.0.0.0/0 -v /home/postgres/data:/var/lib/postgresql/data -p 55433:5432 -d postgres

参数说明:

- --name postgres 设置容器名称
- --restart always 设定自启动
- -e POSTGRES_PASSWORD='abc123@commonServer' 设定数据库密码
- -e ALLOW_IP_RANGE=0.0.0.0/0 设定允许访问的ip 范围
- -v /home/postgres/data:/var/lib/postgresql 设置挂载目录,宿主机路径在前,容器路径在后
- -p 55433:5432 端口映射 宿主机在前,容器在后
- -d postgres 启动 postgres 数据库

3. 登录数据库

3.1 进入容器内部

docker exec -it postgres bash

3.2 切换用户

su postgres

3.3 登录PG数据库,然后输入密码回车

psql -U postgres -W

显示如下,说明成功登录数据库

[root@localhost contains]# docker exec -it postgres bash
root@611ba53a575c:/# 
root@611ba53a575c:/# su postgres
postgres@611ba53a575c:/$ 
postgres@611ba53a575c:/$ psql -U postgres -W
Password: 
psql (16.4 (Debian 16.4-1.pgdg120+1))
Type "help" for help.

postgres=#

4. 修改访问ip 白名单

编辑/var/lib/pgsql/13/data/pg_hba.conf
增加:

host      all       all   0.0.0.0/0        password

保存后退出,重启容器即可

注意

PG数据库
PostgreSQL在查询时,如果字段名中有大小写混合的情况且字段名首字母非大写,则在查询这样的字段时必须加双引号,否则汇报字段不存在的错误。
去除 with nolock
关键字,去掉中括号
大小写的字段,全部转为双引号字段

posted on 2024-09-21 11:25  hengdin  阅读(25)  评论(0)    收藏  举报