关于Docker部署postgresql数据库的问题

 更新时间:2022年03月01日 11:28:27   作者:怒吼的萝卜  
这篇文章主要介绍了Docker部署postgresql数据库的相关知识,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

环境

Centos-7

Postgresql-10

docker-19

yum加载Postgresql

yum install https://download.postgresql.org/pub/repos/yum/10/redhat/rhel-7-x86_64/pgdg-centos10-10-2.noarch.rpm -y  

查看Postgresql版本

yum list | grep postgresql

下载Postgresql镜像

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

postgis扩展的postgresql组合版本:

使用kartoza/postgis镜像安装:

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

或参照DockerFile构建镜像:https://www.jb51.net/article/115422.htm

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 
#安装vim
apt-get -y install vim 

配置远程访问

#切换到目录/var/lib/postgresql/data
cd /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

到此这篇关于Docker部署postgresql数据库的文章就介绍到这了,更多相关Docker部署postgresql内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • docker建立私有仓库的过程

    docker建立私有仓库的过程

    这篇文章主要介绍了docker私有仓库的建立,在这需要注意从私有仓库下载先移出原镜像,具体操作过程跟随小编一起看看吧
    2022-01-01
  • dockerhub 镜像拉取超时的解决方法

    dockerhub 镜像拉取超时的解决方法

    DockerHub遇到镜像拉取超时问题,现在可以通过修改仓库地址为daocloud提供的镜像地址解决,为用户提供便捷的镜像拉取服务,感兴趣的可以了解一下
    2024-10-10
  • 使用Docker完成前端部署详细图文教程

    使用Docker完成前端部署详细图文教程

    这篇文章主要给大家介绍了关于使用Docker完成前端部署的相关资料,Docker变得越来越流行,它可以轻便灵活地隔离环境,进行扩容,运维管理,文中通过图文介绍的非常详细,需要的朋友可以参考下
    2023-09-09
  • Docker之Dockerfile使用方法详解

    Docker之Dockerfile使用方法详解

    当使用Docker构建容器化应用程序时,Dockerfile是一个用于定义容器镜像的文本文件,Dockerfile 的编写是构建容器的基础,它允许您定义容器的构建步骤、环境和配置,所以本文就给大家讲讲Docker的Dockerfile使用方法,需要的朋友可以参考下
    2023-09-09
  • CentOS7 Docker防火墙的简单配置教程

    CentOS7 Docker防火墙的简单配置教程

    这篇文章主要给大家介绍了关于CentOS7 Docker防火墙的简单配置方法,以及总结了docker在centos7下的一些坑,文中通过示例代码介绍的非常详细,需要的朋友可以参考借鉴,下面随着小编来一起学习学习吧。
    2017-12-12
  • docker-compose搭建prometheus+grafana+钉钉告警

    docker-compose搭建prometheus+grafana+钉钉告警

    本文主要介绍了docker-compose搭建prometheus+grafana+钉钉告警,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-07-07
  • 解决docker日志挂载的问题

    解决docker日志挂载的问题

    这篇文章主要介绍了解决docker日志挂载的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-11-11
  • 关于Jenkins + Docker + ASP.NET Core自动化部署的问题(避免踩坑)

    关于Jenkins + Docker + ASP.NET Core自动化部署的问题(避免踩坑)

    这篇文章主要介绍了关于Jenkins + Docker + ASP.NET Core自动化部署的问题,本文给大家带来了docker安装方法及一些注意事项,内容有点小长,希望朋友们耐心看完,一定有收获
    2021-05-05
  • 使用docker部署springboot项目到服务器的详细过程

    使用docker部署springboot项目到服务器的详细过程

    这篇文章主要介绍了docker部署springboot项目到服务器,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-06-06
  • 迁移Docker中MySQL容器的全过程

    迁移Docker中MySQL容器的全过程

    在这篇文章中,我们将介绍如何将在 Docker 中运行的 MySQL 容器从一台机器(我们称之为A机器)迁移到另一台机器(我们称之为B机器),这个过程主要包括五个步骤:提交容器为镜像,保存镜像为 tar 包等,文中有详细的代码示例供大家参考,需要的朋友可以参考下
    2023-12-12

最新评论