Docker:Docker部署postgresql数据库

网友投稿 396 2022-10-20

Docker:Docker部署postgresql数据库

环境

Centos-7

Postgresql-10

docker-19

yum加载Postgresql

yum install -y

查看Postgresql版本

yum list | grep postgresql

下载Postgresql镜像

#拉取得是版本10docker pull postgres:10

postgis扩展的postgresql组合版本:

使用 ​​kartoza/postgis​​ 镜像安装:

#书写格式kartoza/postgis:[postgres_version]-[postgis-version]11.0-2.510.0-2.49.6-2.4# 例如:拉取 postgresql 9.6 版本以及postgis 2.4 版本docker pull kartoza/postgis:9.6-2.4

或参照DockerFile构建镜像:​​-f DockerFile路径 -t 自定义镜像名称 不要忘记 . docker build -f /docker/dockerfile/mycentos -t mycentos .

创建宿主机映射sql目录

#这里我在var/lib/下创建mkdir /var/lib/PostgreSqlData

构建镜像

#镜像名称修改(docker tag 镜像ID 自定义名称)docker run --name my_postgres -v /home/data:/var/lib/postgresql -e POSTGRES_PASSWORD=****** -d -p ****:5432 postgres

--name : 自定义容器名称

-v :进行映射,本地目录:容器内路径

POSTGRES_PASSWORD:数据库密码

-p:映射端口,宿主机端口:容器端口

最后是 镜像名称:端口号

这里有个简便的命令

docker run -d --name postgres --restart always -e POSTGRES_USER='postgres' -e POSTGRES_PASSWORD='abc123' -e ALLOW_IP_RANGE=0.0.0.0/0 -v /home/postgres/data:/var/lib/postgresql -p 5432:5432 -t postgis

-e ALLOW_IP_RANGE=0.0.0.0/0,这个表示允许所有ip访问,如果不加,则非本机 ip 访问不了-e POSTGRES_USER=abcuser 用户名-e POSTGRES_PASS=‘abc123’ 指定密码

进入postgres容器

docker exec -it 容器ID bash

更新软件源

#更新软件源列表apt-get update #安装vimapt-get -y install vim

配置远程访问

#切换到目录/var/lib/postgresql/datacd /var/lib/postgresql/data

编辑postgresql.conf文件

#修改:在所有IP地址上监听,从而允许远程连接到数据库服务器:listening_address: '*'

编辑pg_hba.conf文件

#添加或修改:允许任意用户从任意机器上以密码方式访问数据库,把下行添加为第一条规则:host all all 0.0.0.0/0 md5

修改编码格式

update pg_database set encoding = pg_char_to_encoding('UTF8') where datname = 'basemap'

查看pg版本

show server_version;# 或者select version();

尝试登录

#登录数据库psql -U postgres -W

重点:报错 psql: FATAL:  Peer authentication failed for user "postgres"

问题一:

#peer(不可信),trust(可信),md5(加密)

修改 /etc/postgresql/10/main/pg_hba.conf 文件

找到下面这行

local all postgres peer

修改成md5(加密) (或改成 trust(可信))

local all postgres md5

问题二:

切换操作用户

#切换成postgres用户su postgres

尝试登录,成功。

重启容器

docker restart 容器name

完成!

推荐github路径:postgres+postgis多版本部署DockerFile文件集:​​https://github.com/postgis/docker-postgis​​

作者:怒吼的萝卜

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Docker:Centos7更新yum源下载docker
下一篇:springboot整合netty
相关文章

 发表评论

暂时没有评论,来抢沙发吧~