Docker Swarm 编排及部署 PostGIS,并操做 GIS 数据

postgis 镜像的基础是 PostgreSql,因此咱们部署了 postgis 镜像也就意味着有了 PostgreSql 数据库,在Docker Hub上已经有人为咱们构建好了,咱们拉取配置便可使用。node

Swarm 是 Docker 官方提供的一款集群管理工具,其主要做用是把若干台Docker主机抽象为一个总体,而且经过一个入口统一管理这些Docker 主机上的各类 Docker 资源。相较与 k8s(Kubernetes), Swarm 的功能也更少一些。可是 Docker 公司已经同时支持了 Swarm 和k8s。 Swarm 的基本架构以下图所示,sql

docker_swarm_architecture

Docker stack 是一组有关服务的管理组合,是 Docker 关系层级中最高的一级,其做用主要是编排及管理服务(Service)。docker

目录及文件建立

建立目录

建立的目录用来作容器的数据存储,由于容器秉承的是用完即毁的理念,因此咱们应该将咱们的数据放在容器以外,生产环境之中,方便下次使用。数据库

$ 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.

获取及部署镜像

编写启动脚本工具

相关文章
相关标签/搜索