Docker: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://github.com/postgis/docker-postgis
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:Docker部署postgresql数据库的更多相关文章
- 在Centos上安装docker,部署mysql数据库
何为docker? Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级.可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化. 本机环境 24小时不关机的Centos ...
- docker容器中Postgresql 数据库备份
查看运行的容器: docker ps 进入目标容器: docker exec -u root -it 容器名 /bin/bash docker 中,以root用户,创建备份目录,直接执行如下命令, p ...
- Docker容器部署Mysql数据库服务器
本节会用到的Docker命令如下: docker images 查看mysql镜像id docker run -d -p xxxxxxxxxxxxxxx/zhufc/mysql:v2 通过镜像生成 启 ...
- 【Linux】Linux下使用Docker快速部署Oracle数据库
安装最新Docker wget -qO- https://get.docker.com/ | sh` 安装 docker-compose sudo curl -L https://github.com ...
- docker部署postgresql时,data目录不生效的问题探究
今天用docker部署postgresql,用的是官方的镜像.结果挂载完 /var/lib/postgresql/data目录后,和容器里的目录其实并没有挂载成功. 母机上的目录并没有成功挂载到容器里 ...
- Docker安装带中文全文搜索插件zhparser的Postgresql数据库
上一篇讲了在已经安装了PG数据库的情况下,安装全文搜索插件zhparser遇到的问题.在一个全新的环境中安装带有全文搜索插件zhparser的PG数据库,可以使用已经做好的Docker镜像,在安装的过 ...
- docker下部署gitlab
docker用来隔离应用还是很方便的,一来本身的操作较为简单,二来资源占用也比虚拟机要小得多,三来也较为安全,因为像数据库这样的应用不会再全局暴露端口,同时应用间的通信通过加密和端口转发,更加安全. ...
- Docker搭建部署Node项目
前段时间做了个node全栈项目,服务端技术栈是 nginx + koa + postgresql.其中在centos上搭建环境和部署都挺费周折,部署测试服务器,接着上线的时候又部署生产环境服务器.这中 ...
- 私活利器,docker快速部署node.js应用
http://cnodejs.org/topic/53f494d9bbdaa79d519c9a4a 最近研究了几天docker的快速部署,感觉很有新意,非常轻量级和方便,打算在公司推广一下,解放运维, ...
随机推荐
- Redis I/O 多路复用技术原理
引言 Redis 是一个单线程却性能非常好的内存数据库, 主要用来作为缓存系统. Redis 采用网络 I/O 多路复用技术来保证在多个连接时,系统的高吞吐量(TPS). 系统吞吐量(TPS)指的是系 ...
- 常见判断错误 (Day_30)
写给自己的话: 这是一个卡了我小半天的BUG,也是一个很低端的BUG,写篇博客吧,以后回来看看,会发现曾经的自己是如何的菜. 同样,以此记录我的进步 步入正题,这是我实现多条件分页时遇到的一个BUG, ...
- MongoDB学习笔记:Python 操作MongoDB
MongoDB学习笔记:Python 操作MongoDB Pymongo 安装 安装pymongopip install pymongoPyMongo是驱动程序,使python程序能够使用Mong ...
- Python+Selenium - js操作
js操作:日期框 本部分涉及两个知识点:DOM树和js DOM树教程链接: https://www.w3school.com.cn/htmldom/index.asp js教程链接 https://w ...
- Volatile 原理及使用,java并发中的可见性问题
1.解决并发编程中的可见性问题 volatile 代表不使用cpu缓存,修改后的数据,将直接刷到内存中,被volatile修饰的变量,读取的时候,也是从内存中读取,不从cpu缓存中读取 上代码 // ...
- TVM Reduction降低算力
TVM Reduction降低算力 这是有关如何降低算力TVM的介绍材料.像sum / max / min这样的关联约简运算符是线性代数运算的典型构造块. 本文将演示如何降低TVM算力. from _ ...
- selenium-python元素定位技巧(一)
在python-selenium元素定位中,有很多小技巧,在此记录总结 技巧一.尽量不要用可见的文本去定位 尽量不要用可见的文本去定位(特别是支持国际化的软件-比如禅道),因为一旦切换语言后,使用该方 ...
- jsp中basa标签的使用
<base href="http://${pageContext.request.serverName}:${pageContext.request.serverPort}${page ...
- 『言善信』Fiddler工具 — 10、Fiddler自动响应器(AutoResponder)的应用
目录 1.图片重定向 2.URL重定向 3.本地调试js文件 4.模拟Mock接口测试 5.综合练习 6.总结 介绍几个Fiddler自动响应器(AutoResponder)应用场景: 场景一:生产环 ...
- CentOS:操作系统级监控及常用计数器解析---除CPU以外
I/O I/O 其实是挺复杂的一个逻辑,但我们今天只说在做性能分析的时候,应该如何定位问题. 对性能优化比较有经验的人(或者说见过世面比较多的人)都会知道,当一个系统调到非常精致的程度时,基本上会卡在 ...