centOS7安装指定版本的postgresql的docker镜像

我有一篇博文是讲在线状态下如何安装postgresql指定版本,以及具体如何配置https://blog.csdn.net/dap769815768/article/details/86474378,但是那种方式有一个坑,就是到了9.5版本之后,尝试使用yum安装扩展postgresql-contrib,由于安装路径和postgresql的默认配置路径有出入,导致使用CREATE EXTENSION IF NOT EXISTS "uuid-ossp"指令时一直报错:

无法打开扩展控制文件 "/usr/pgsql-10/share/extension/uuid-ossp.control": 没有那个文件或目录

由于我暂时还不知道怎么解决这个问题,因此,在线安装的方法安装的数据库无法正常使用pg的扩展,这里我讲一个使用docker镜像安装数据库的方法:

1.centos安装docker,如果网络接通,安装很简单,如果不通,参考我另一篇博文

yum install -y docker

2.启动docker

systemctl start docker

3.查询可用的docker镜像:

docker search postgres

4.我们选择docker.io/postgres这个星级最高的下载:

docker pull docker.io/postgres(这里如果不加版本号,就默认下载最新的,如果加了版本号docker pull docker.io/postgres:10,则是下载指定版本)

5.查看本机镜像:

docker image ls

下面的TAG为latest的是没有加版本号pull下来的镜像

6.启动容器,这里我们启动版本号为10的镜像,使用它的IMAGE ID来启动:

run代表启动容器

--name postgresql10表示将启动的容器命名为postgresql10

POSTGRES_PASSWORD=sa 表示给pg默认的用户postgres的密码设置为sa

5432:5432表示将机器的端口和容器的端口作映射

b62e41d8ddcc表示启动名为b62e41d8ddcc的镜像

如果想该容器随着docker的重启跟着重启的话,请加上--restart=always ,也就是下面这样

docker run --restart=always --name postgresql10 -e POSTGRES_PASSWORD=sa -p 5432:5432 -d b62e41d8ddcc

7.查看容器:

docker ps -a

可以看到我们的容器已经在启动中了。

8.到这里,基本上pg的基础配置部分已经全部搞定了,把系统的防火墙关掉,然后尝试从外面访问启动好的数据库,如果不出意外,应该是成功的:

9.成功后尝试执行命令:CREATE EXTENSION IF NOT EXISTS "uuid-ossp":

表示pg的扩展也没问题

猜你喜欢

转载自blog.csdn.net/dap769815768/article/details/86551446