环境Centos-7 Postgresql-10 docker-19 yum加载Postgresqlyum 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镜像#拉取得是版本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构建镜像: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 #安装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 文件 找到下面这行 修改成md5(加密) (或改成 trust(可信)) 问题二:切换操作用户 #切换成postgres用户su postgres 尝试登录,成功。 重启容器 完成! 推荐github路径:postgres+postgis多版本部署DockerFile文件集:https://github.com/postgis/docker-postgis 下载地址: 容器化技术架构jenkins 构建及部署jenkins |