Docker Swarm 编排及部署 PostGIS,并操作 GIS 数据
本文还是继docker之后的一片更新,只是这次使用 Docker stack 进行容器部署及编排。部分图片来自 Docker 官网。
postgis 镜像的基础是 PostgreSql,所以我们部署了 postgis 镜像也就意味着有了 PostgreSql 数据库,在Docker Hub上已经有人为我们构建好了,我们拉取配置即可使用。
Swarm 是 Docker 官方提供的一款集群管理工具,其主要作用是把若干台Docker主机抽象为一个整体,并且通过一个入口统一管理这些Docker 主机上的各种 Docker 资源。相较与 k8s(Kubernetes), Swarm 的功能也更少一些。但是 Docker 公司已经同时支持了 Swarm 和k8s。 Swarm 的基本架构如下图所示,
Docker stack 是一组有关服务的管理组合,是 Docker 关系层级中最高的一级,其作用主要是编排及管理服务(Service)。
目录及文件创建
创建目录
创建的目录用来做容器的数据存储,因为容器秉承的是用完即毁的理念,所以我们应该将我们的数据放在容器之外,生产环境之中,方便下次使用。
$ mkdir pgadmin_data && mkdir postgres_data # pgadmin_data 存储pgadmin的登录即数据库链接信息, postgres_data 存储数据库生产数据 $ tree . ├── deploy ├── docker-compose.yml ├── pgadmin_data └── postgres_data
编写 docker-compose.yml 文件
此次部署我们用到容器的编排,所以会有 deploy 里面的各种信息,若有不理解的,还请移步 Docker Compose。
version: '3' services: postgis: image: kartoza/postgis:9.6-2.4 ports: - "5432:5432" environment: POSTGRES_USER: sde POSTGRES_PASS: sde POSTGRES_DBNAME: gis ALLOW_IP_RANGE: 0.0.0.0/0 volumes: - ./postgres_data:/var/lib/postgresql deploy: mode: replicated replicas: 1 restart_policy: condition: on-failure delay: 5s max_attempts: 3 update_config: parallelism: 1 delay: 10s placement: constraints: - node.role == manager pgadmin: image: chorss/docker-pgadmin4 ports: - "8888:5050" environment: PGADMIN_SETUP_EMAIL: guzhongren@live.cn PGADMIN_SETUP_PASSWORD: 000000 volumes: - ./pgadmin_data:/data deploy: mode: replicated replicas: 1 restart_policy: condition: on-failure delay: 5s max_attempts: 3 update_config: parallelism: 1 delay: 10s placement: constraints: - node.role == manager
swarm 初始化及镜像部署
docker swarm 初始化
$ docker swarm init Swarm initialized: current node (bvz81updecsj6wjz393c09vti) is now a manager. To add a worker to this swarm, run the following command: docker swarm join \ --token SWMTKN-1-3pu6hszjas19xyp7ghgosyx9k8atbfcr8p2is99znpy26u2lkl-1awxwuwd3z9j1z3puu7rcgdbx \ 172.17.0.2:2377 To add a manager to this swarm, run 'docker swarm join-token manager' and follow the instructions.
获取及部署镜像
编写启动脚本
$ vim deploy # 加入如下命令 docker stack deploy --compose-file=docker-compose.yml postgre # Esc --> wq $ sudo chmod +x deploy
部署
$ ./deploy Creating network postgre_default Creating service postgre_postgis Creating service postgre_pgadmin
链接 pgAdmin 即 Postgis数据库
访问我的阿里云网址+8888端口即可链接pgAdmin
连接数据库
序号 | 名称 | 值 | 备注 |
---|---|---|---|
1 | 主机名 | 47.95.247.* | ip |
2 | 端口 | 5432 | |
3 | 数据库 | gis | |
4 | 用户名 | sde | |
5 | 密码 | sde |
连接效果
在 QGIS 中连接 PostGIS 容器
序号 | 名称 | 值 | 备注 |
---|---|---|---|
1 | 主机名 | 47.95.247.* | ip |
2 | 端口 | 5432 | |
3 | 数据库 | gis | |
4 | 用户名 | sde | |
5 | 密码 | sde |
QGIS 连接效果
用 QGIS 导入 shape 数据
打开QGIS, 将要添加的数据加载到QGIS中,并打开DBManager 插件,点击下图中所示的导入图层按钮。
将 shapefile 数据导入 postgis 中
导入完成
在 QGIS 中浏览数据
在 QGIS 中编辑数据
回到 Docker Swarm
使用 Docker swarm 我们可以更好的管理及扩展我们的Service,如扩容等,还可以对已经部署的容器进行无宕机式的“热更新”;docker stack 自带负载均衡,我们无需担心单个节点容器之间的访问是否会超载等,还有 docker stack 会保证service的数量一直和配置文件中的一直,保证其可用性。
总结
此次部署使用 Docker Swarm 来做集群管理,因为是部署在阿里云上,资源有限,不能进行多节点(Node)的创建及管理,只能用一个 Manager 节点来操作;但是不影响优化之前通过 Docker 简单命令创建及管理容器的操作。利用 Docker Stack 的优势,我们可以更好的管理 Service, 如扩容、更新、创建及销毁。k8s(Kubernetes) 有 Docker stack 的各种能力,但其能力远超 Docker Stack, 其使用也非常简单, 现在 Docker 公司已经开始兼容 k8s。
玩 Docker 还是需要多台机器,起码是虚拟机才好玩,一台阿里云ECS真不够,连 GitLab 都装不了。不哭了,真穷。
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
实战可依赖的20本大数据书籍(收藏)
前言 书要读懂,先求不懂。 因为很多人私信问我大数据应该读什么书比较好,所以小编特意找了二十本大数据实战可依赖的书籍,想要转职或者深入学习大数据的朋友可以注意了,点赞收藏加转发,鼓励一下小编的良苦用心 分享之前我还是要推荐下我自己创建的大数据学习交流Qun531629188 无论是大牛还是想转行想学习的大学生 小编我都挺欢迎,今天的已经资讯上传到群文件,不定期分享干货, 包括我自己整理的一份最新的适合2018年学习的大数据教程,欢迎初学和进阶中的小伙伴。 1、互联网大规模数据挖掘与分布式处理 作者:Jure Leskovec,Anand Rajaraman,Jeffrey David Ullman 译者:王斌 书号:978-7-115-39525-2 定价:79 页数:388 畅销书全新升级,新增影响与同质性、社交媒体推荐和行为分析等超实用内容 涵盖解决数据挖掘核心问题所用算法,及实际应用数据挖掘所需知识,理论与实现并重 斯坦福大学数据挖掘方向专家Jure Leskovec、Anand Rajaraman、Jeffrey David Ullman重磅力作 http://www.itur...
- 下一篇
关于“身份验证失败,函数不受支持”解决方法实操
最近,很多实用阿里ECS,windows操作系统的朋友,发现远程登录的时候,出现一个错误。即“身份验证失败,函数不受支持”如下图。虽然阿里文档有解决的方法,但还是有许多朋友操作后,还是没办法登录,刚好今天有时间,就按照文档进行操作 操作系统: ECS操作系统:windows2008 R2 本地电脑操作系统:windows10 (1) 操作嘛。肯定想先偷偷懒,按照文档中说的,进行打补丁,升级就可以了。但是万万没想到。。。情况是下面这样的 (2)好吧,老老实实的按照文档中第二种方法“修改注册表”的提示操作,从阿里控制台进入ECS中,点击开始--》运行。输入regedit,点击确定,进入注册表中,然后开始一步一步的找,每一个文件夹HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\System\CredSSP\Parameters,如下图 这一顿下拉果...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Red5直播服务器,属于Java语言的直播服务器
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长
- CentOS6,CentOS7官方镜像安装Oracle11G
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2全家桶,快速入门学习开发网站教程
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- CentOS8编译安装MySQL8.0.19