Constructing GIS Cloud Center Based on Docker

05 May,2016

What does Docker mean for GIS server?

Linux container is a light-weight virtualization method, which uses core virtualization technology to improve the virtualization of light weight to isolate process and resources. Docker extended LXC, provided higher level API, simplified the packing and deploying of the application, and created the independent private environment for terminal users, which saves the deploying time for developers and system administrators.
For the purpose of resource distribution and application isolation, what are the differences between virtualization technologies based on virtual machine like OpenStack and container technologies like Docker? Please take a look at this table.

Feature 

OpenStack 

Docker

 

Space Occupation

 

 

Virtual machines are mutually independent, occupying larger space (more than 1GB).

 

Containers share core, occupying less space (less than 1 GB).

Resource Distribution

 

Utilization is low due to virtual machine occupies distributed resource solely. 

 

Utilization is high because Containers dynamically occupy distributed resource.

 

Deploying Speed (operation and startup)

 

Setting up deploying takes tens of minutes, every startup needs seconds or minutes.

 

One command line, (milli) second can run, very fast from creating container to startup.

 

Performance Loss 

 

Run on physical machine, low performance.

 

Run on directly on host machine, barely performance loss.

 

Mirror Sharing

 

N/A

 

Official mirror storage, easily to copy and share.

 

Isolation

Complete isolation among virtual machines Weak isolation among containers



The table above shows the difference between container technology and former technologies, there are some merits worth noticing, such as: easier to start up (milli-second or even faster), easier to distribute mirror volume, higher utilization (less container dynamic distribute resource).
But does that mean Docker will completely replace OpenStack? Of course not, OpenStack as the mainstream open-source cloud calculation management platform, mainly focus on IaaS platform, which is more suitable for providing fundamental infrastructure services. But container (like Docker) is more suitable for PaaS layer, which is for application development and isolation deployment (Like GIS server).

 

Speaking so much about Docker. Wanna try it?  We will demonstrate Docker on Linux .

Step 1 Install Docker

To install Docker, please refer to https://docs.docker.com/linux

Step 2 Download iServer mirror

Execute the following code to download the latest iServer mirror (takes approximately 10 minutes)

docker pull supermap/iserver

After downloading, you can see the information of the downloaded image, like the figure below, the mirror of SuperMap/iServer occupies 944MB (different size shown in the mirror center).

 

Step 3: Run a Docker to start iServer 

Based on the downloaded iServer mirror, run a Docker container iServer1. Execute the following code in Docker:

docker run --name iserver1 -d -p 8090:8090 v /home/data:/home supermap/iserver

The codes above execute the process of running container and starting up iServer. After a few seconds, iServer will be initialized. You can open browser and visit http:// IP>:8090, you can see iServer. After creating administrator, you can start using iServer.

Step 4 Publish GIS data on iServer

How to publish GIS data if we have iServer service?

When we ran the container in the previous step, we have assigned mapping path (–v /home/data:/home) from host to Docker through –v parameter.  Therefore we can put data under the host (/home/data in this example). Logging in iServer service management, enter quick publishing service guide, then can find the mapped data and publish them in the corresponding folder.

The methods of mapping path can be used for publishing GIS data in file format, like file workspace, MBTiles tile package. If you want to store GIS data in the database, like database workspace, MongoDB tiles, you don’t need this mapping method. According to principles of isolation and resource sharing, please deploy database separately (host or other servers), all iServer can directly access the database. 

Docker is a new development for LXC technology,  it provided a new technical plan for cloud GIS center. Based on Docker, we can easily execute a container and start iServer, which only takes a few seconds.

Deploying GIS server based on Docker, no need to manual deploy, no complicated operations, you only need a dew command lines.

Download iServer here:

https://hub.docker.com/r/supermap/iserver

More Big Data GIS Related

Satellite Tracking + Big Data GIS Application in Real-time Ship-controlling>

Big Data - Sign

More Articles

59