BI系統打包Docker鏡像及部署的技術難度和實現
隨着容器化技術盛行,Docker在前端領域也有着越來越廣泛的應用;傳統的前端部署方式需要我們將項目打包生成一系列的靜態文件,然後上傳到服務器,配置nginx文件;如果我們使用容器化部署,將部署操作都命令化,集中成一個腳本就可以完成原來複雜的部署過程。本文就來介紹BI系統如何通過Docker方式進行部署。
1.什麼是docker容器?
Docker是一個開源的引擎,可以輕鬆的爲任何應用創建一個輕量級的、可移植的、自給自足的容器。
Docker的英文翻譯是碼頭工人,碼頭工人一般搬運的都是集裝箱(Container),集裝箱最大的成功在於其產品的標準化以及由此建立的一整套運輸體系。在一艘幾十萬噸的巨輪上,裝滿了各種各樣滿載的集裝箱,彼此之間不會相互影響;因此其本身就有標準化、集約化的特性。
從Docker的logo我們也能看出,Docker的思想來自於集裝箱;各個應用程序相當於不同的集裝箱,每個應用程序有着不同的應用環境,比如python開發的應用需要服務器部署一套python的開發環境,nodejs開發的應用需要服務器部署nodejs的環境,不同環境之間有可能還會彼此衝突,Docker可以幫助我們隔離不同的環境。
有些同學於是就想到了,這不是虛擬機乾的活麼。是的,虛擬機可以很好的幫我們隔離各個環境,我們可以在windows上運行macOS、ubuntu等虛擬機,也可以在macos上安裝Windows的虛擬機;不過傳統的虛擬機技術是虛擬一整套硬件後,在其上運行完整的操作系統,在該系統上再運行所需應用進程,這樣導致一臺電腦只能運行數量較少的虛擬機。
但是Docker使用的容器技術比虛擬機更加的輕便和快捷。容器內的應用進程直接運行於宿主的內核,容器內沒有自己的內核,而且也沒有進行硬件虛擬。因此容器要比傳統虛擬機更爲輕便,下圖比較了兩者的區別:
對比總結:
特性 | 容器 | 虛擬機 |
---|---|---|
啓動 | 秒級 | 分鐘級 |
硬盤使用 | 一般爲 MB | 一般爲 GB |
系統資源 | 0~5% | 5~15% |
性能 | 接近原生 | 弱於原生 |
系統支持量 | 單機支持上千個容器 | 一般幾十個 |
2.Docker容器化部署的優勢?
- 啓動快、解決虛擬機資源消耗問題
啓動容器相當於啓動本機一個進程,啓動速度快。一臺電腦運行一個Linux虛擬機可能會卡頓,卻可以使用Docker虛擬幾十甚至上百臺虛擬Linux服務器,容器僅佔用用到的資源,多個容器可共享資源。
- 體積小、快速部署
開發的應用在自己電腦上運行,換一臺機器可能無法運行,需要環境配置。
使用Docker可以將應用程序及依賴包打包在一個文件裏,運行這個文件就會啓動虛擬服務器。
- 提供一次性環境
啓動或關閉一個虛擬服務器就像啓動或關閉一個進程一樣簡單、快速。
- 組建微服務架構
通過多個容器,一臺機器可以跑很多虛擬服務器,一臺機器上可以虛擬出微服務架構,也可以模擬出分佈式架構。
3.BI系統如何實現Docker容器化部署
隨着容器化技術的普及,越來越多的企業都採用容器化的方式來部署自己的系統,BI系統也隨着技術的發展,提供Docker容器化部署方式。爲了帶大家瞭解如何實現將BI系統的Docker容器化部署,我們以商業智能軟件Wyn爲例,爲大家展示這個過程。
Wyn在DockerHub上發佈了BI系統的鏡像,大家可以根據自己的需要拉取對應的版本進行部署。鏡像地址:https://hub.docker.com/r/grapecitycn/wyn-enterprise/tags
基本安裝步驟
(1) Docker部署。
具體可參考https://docs.docker.com/install/linux/docker-ce/ubuntu/
(2) 使用如下命令拉取最新的Docker鏡像。
sudo docker pull grapecitycn/wyn-enterprise |
---|
(3) 運行如下命令,創建並運行Docker容器。
sudo docker run --name wyn -p 51980:51980 -d grapecitycn/wyn-enterprise |
---|
(4) 至此,您已經可以通過 http://{server_ip_address}:51980 來訪問Wyn Enterprise系統。
Docker目錄掛載
如使用內置的數據庫,爲了防止新建Docker容器後數據丟失,可將容器中的數據目錄掛載到宿主機上。
如需掛載目錄,請使用如下命令替換基本安裝步驟中第三步的命令創建並運行Docker容器。
sudo docker run --name wyn -p 51980:51980 -h "{host_name}" -v /tmp/wyn_data:/var/lib/postgresql/data -d grapecitycn/wyn-enterprise |
---|
命令中 -v /tmp/wyn_data:/var/lib/postgresql/data爲掛載操作,冒號":"前面的目錄是宿主機目錄,後面的目錄是容器內目錄。 |
使用自定義數據庫
Wyn Enterprise系統默認將數據存放在內置數據庫中,你還可以使用其他數據庫,支持Postgres、SqlServer、MySql和Oracle四種數據庫類型。
如果您需要使用其他的數據庫,請使用如下命令替換基本安裝步驟中第三步的命令創建並運行Docker容器。
- Postgres/SqlServer/MySql數據庫:
|sudo docker run --name wyn -p 51980:51980 -h "{host_name}" -e DB_PROVIDER="{Postgres|SqlServer|MySql}" -e DB_HOST="{database_server_address}" -e DB_PORT=database_listening_port -e DB_USER="{database_user}" -e DB_PASSWORD="{database_user_password}" -d grapecitycn/wyn-enterprise|
| :- |
- Oracle數據庫:
sudo docker run --name wyn -p 51980:51980 -h "{host_name}" -e DB_PROVIDER="Oracle" -e DB_HOST="{database_server_address}" -e DB_PORT=database_listening_port -e DB_USER="{database_user}" -e DB_PASSWORD="{database_user_password}" -e ORACLE_SERVICE_NAME="{service_name_only_for_oracle_provider}" -d grapecitycn/wyn-enterprise |
---|
請注意按實際情況更換命令行中的配置信息。
- 示例:
sudo docker run --name wyn -p 51980:51980 -h "wyn1" -e DB_PROVIDER="SqlServer" -e DB_HOST="gcs-testing-01" -e DB_PORT=1433 -e DB_USER="sa" -e DB_PASSWORD="aa123456" -d grapecitycn/wyn-enterprise |
---|
注意
配置爲系統數據庫時對數據庫的版本要求如下:
SQL Server須爲2012及以上版本;Oracle須爲12c R2及以上版本;MySQL須爲5.6及以上版本(且數據庫的字符集必須配置爲UTF-8);PostgreSQL須爲8.4及以上版本。
另外,如需使用MySql數據庫,請留意數據庫中是否限制了插入和更新數據的數據包大小,此大小需設置爲不小於300M。
卸載
(1) 運行如下命令停止Docker 容器運行。
sudo docker stop wyn |
---|
(2) 刪除Docker容器。
sudo docker rm wyn |
---|
到這裏我們就完全實現了BI系統打包Docker並完成部署。 |
更多相關內容大家可以查看:
https://help.grapecity.com.cn/pages/viewpage.action?pageId=62063422