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.

獲取及部署鏡像

編寫啓動腳本工具

相關文章
相關標籤/搜索