1. 程式人生 > >五分鐘學GIS | 自己動手做Docker映象

五分鐘學GIS | 自己動手做Docker映象

在上一期五分鐘學GIS中,我們學習了Docker的安裝與使用,本期將繼續Docker這個主題,來了解一下如何製作自己的Docker映象。

1.製作映象的方法

本文所提到的製作映象是指在一個已有的映象容器中進行修改,從而建立一個新的符合個人目標的映象。Docker提供了兩種映象製作的方法。
第一種使用docker commit 命令來建立映象,主要步驟如下:
1)通過docker run命令啟動容器
2)修改docker映象內容
3)docker commit提交修改的映象
4)驗證。檢視映象,並啟動新的容器
第二種通過Dockerfile來建立映象,主要步驟如下:
1)新建一個空目錄和一個Dockerfile檔案。
2)編寫Dockerfile檔案。Dockerfile包含建立映象所需要的全部指令。
3)基於在Dockerfile中的指令,使用Docker build命令來建立映象
兩種映象建立方式的對比如下表,具體選擇哪種方法來製作映象需要結合實際情況來選擇。

2.映象製作示例

需求:
GIS伺服器使用SuerMap iServer,在此基礎上擴充套件了查詢距離點最近的道路線的自定義GIS服務,為了方便這套GIS伺服器後續部署和遷移工作,製作一個映象檔案。
操作環境:
ubuntu14,安裝了docker engine,下載了SuperMap iServer的映象檔案
製作iServer新映象流程:
啟動SuperMap iServer容器在容器中新增GIS擴充套件服務提交製作映象驗證映象
製作映象步驟:
第一步:使用docker run(建立容器並啟動)命令啟動SuperMap iServer容器。有關SuperMap iServer映象下載與容器啟動的介紹參見五分鐘學GIS|Docker安裝及使用。這裡寫圖片描述


第二步:進入Docker容器,修改SuperMap iServer映象內容。
1) 使用docker exec命令進入Docker容器
這裡寫圖片描述

2)進入SuperMap iServer目錄(映象中SuperMap iServer軟體目錄位置:/ect/icloud/SuperMapiServer)。
這裡寫圖片描述
3)對SuperMap iServer進行擴充套件服務的部署,包括將擴充套件服務jar包複製到\webapps\iserver\WEB-INF\lib資料夾中,修改\webapps\iserver\WEB-INF\iserver-services.xml。有關部署SuperMap iServer擴充套件服務的方法請參見

http://blog.csdn.net/supermapsupport/article/details/72918419,本文不詳細介紹。
這裡寫圖片描述
4)啟動iserver服務,對擴充套件服務進行測試。
5)exit命令退出容器。
這裡寫圖片描述
第三步:docker commit提交修改的映象。
這裡寫圖片描述
-m:描述我們此次建立image的資訊。
–author:用來指定作者。
c9e2d1d6ea6f:被修改的基礎映象ID。
supermap/iserverdss:v1:倉庫名/映象名:TAG名。

使用commit命令將容器裡的所有修改提交到本地庫中,形成以一個全新的映象,並會返回新映象的完整ID。
通過docker images命令可以檢視映象列表。

第四步,驗證映象。建立並啟動新映象的容器,檢視內容是否正確。
這裡寫圖片描述
SuperMapiServerDss容器啟動以後,就可以在瀏覽器通過宿主機ip/域名:埠的形式訪問到GIS伺服器了,這裡訪問:http://192.168.73.21:9091/iserver/services,可以看到iServer中包括一個擴充套件的服務calculate/rest。

3.儲存自己的映象

使用上面介紹的方法可以建立自己的映象,那麼如果Docker 宿主機崩潰了或者檔案消失了怎麼辦?如何保證我們建立的映象在系統崩潰後仍然不丟失?大家可以將自己建立的映象檔案上傳到映象倉庫中。
Docker Hub 官方提供了 Docker Hub 倉庫讓我們來儲存映象,當然也可以自己搭建Docker倉庫。本文以上傳到Docker Hub倉庫為例介紹上傳映象的操作。
這裡寫圖片描述
(1)登陸Docker Hub,輸入如下命令:
這裡寫圖片描述
此時會輸出互動資訊,讓我們輸入Username、Password、Email,成功輸入資訊後就會返回Login Success提示。
(2)執行上傳映象的命令如下:這裡寫圖片描述