我这里使用的是pgsql12版本
先使用docker拉取镜像
[root@s73 ~]# docker pull postgres:12
12: Pulling from library/postgres
a2abf6c4d29d: Pull complete
......
59525896cd85: Pull complete
Digest: sha256:1d098cd3c1a7b132edc5bfdd7d775ff0949104b150e31d52c0aff7bdcd25c53e
Status: Downloaded newer image for postgres:12
查看images,看到pgsql12已经存在于镜像列表中
[root@s73 ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
rancher/mirrored-flannelcni-flannel v0.17.0 9247abf08677 2 months ago 59.8MB
rancher/mirrored-flannelcni-flannel-cni-plugin v1.0.1 ac40ce625740 3 months ago 8.1MB
postgres 12 58bff7631346 4 months ago 371MB
k8s.gcr.io/kube-proxy v1.15.1 89a062da739d 2 years ago 82.4MB
quay.io/coreos/flannel v0.11.0-amd64 ff281650a721 3 years ago 52.6MB
k8s.gcr.io/pause 3.1 da86e6ba6ca1 4 years ago 742kB
接着创建一个pgsql的数据目录,我这里指定为/usr/local/pgsql/data
[root@s73 ~]# mkdir -p /home/pgsql/data
启动容器
[root@s73 ~]# docker run --privileged --name pgsql -e POSTGRES_PASSWORD=postgres -p 5432:5432 -v /usr/local/pgsql/data:/var/lib/postgresql/data -d postgres:12
# 命令解析
--name postgres 指定容器的名称
-e POSTGRES_PASSWORD=postgres 设置环境变量,指定数据库的用户名和密码,用户名为postgres,密码为:postgres
-p 5432:5432 指定端口:前面为映射的端口号,后面为镜像的端口号
-v /usr/local/pgsql/data:/var/lib/postgresql/data 指定宿主机的目录和原数据目录
-d postgres:12 指定镜像名称以及版本号
# postgres镜像默认的用户名为postgres
然后进入容器
[root@s73 ~]# docker exec -it pgsql /bin/bash
root@4a9c70e57408:/#
修改pg_hba.conf文件,也可以直接通过刚挂载的宿主机目录/usr/local/pgsql/data里操作
root@4a9c70e57408:/# vim /var/lib/postgresql/data/pg_hba.conf
配置文件里加入
host all all 0.0.0.0/0 password
然后修改postgresql.conf 把端口注释去掉
root@4a9c70e57408:/# vim /var/lib/postgresql/data/postgresql.conf
保存后退出重启镜像,安装完成!
docker restart pgsql12
若要查看pgsql日志,则输入
docker logs pgsql12