BI系統打包Docker鏡像及部署的技術難度和實現
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系統的鏡像,大家可以根據自己的需要拉取對應的版本進行部署。鏡像地址://hub.docker.com/r/grapecitycn/wyn-enterprise/tags
基本安裝步驟
(1) Docker部署。
具體可參考//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) 至此,您已經可以通過 //{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並完成部署。 |
更多相關內容大家可以查看:
//help.grapecity.com.cn/pages/viewpage.action?pageId=62063422