• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于Docker容器的多應(yīng)用集成搭建

      2020-05-11 12:24張世超
      關(guān)鍵詞:容器

      張世超

      摘要:針對爆炸式增長的應(yīng)用系統(tǒng)數(shù)量與不斷攀升的運維經(jīng)費間的矛盾,基于Docker技術(shù)遷移應(yīng)用系統(tǒng)至容器,實現(xiàn)網(wǎng)絡(luò)隔離,搭建多應(yīng)用集成,并與Vmware虛擬機進(jìn)行對比分析。

      關(guān)鍵詞:Docker;Vmware;容器

      中圖分類號:TP391 文獻(xiàn)標(biāo)識碼:A 文章編號:1007-9416(2020)02-0101-02

      在以往的年代,每臺服務(wù)器運行單個應(yīng)用系統(tǒng),現(xiàn)在如果依然采用這種模式,服務(wù)器數(shù)量將呈爆炸式增長,運維成本不可想象,日常工作中通常購買比實際需求更好的服務(wù)器來滿足性能和日后升級需要,最終導(dǎo)致很多服務(wù)器計算資源大部分時間處于空閑狀態(tài),這是一種極大的浪費,為了解決上述問題,陸續(xù)誕生了VMware虛擬機和Docker容器。

      1 Docker與VMware

      VMware虛擬機在硬件層面上實現(xiàn)虛擬化,Docker容器是在操作系統(tǒng)層面上實現(xiàn)的虛擬化。Docker共享宿主機硬件資源和操作系統(tǒng),無論運行多少容器都共享一個操作系統(tǒng),VMware虛擬機依賴操作系統(tǒng),有多少個虛擬機就需要運行多少操作系統(tǒng)。容器節(jié)省大量系統(tǒng)資源,如CPU內(nèi)存和存儲,同時還能節(jié)省操作系統(tǒng)許可證開銷,以及為操作系統(tǒng)打補丁等運維成本[1]。

      2 Docker容器多應(yīng)用集成實現(xiàn)

      這里用市面上使用率最高,最具代表性的的LAMP(Linux+ Apache+PHP+Mysql)舉例說明實現(xiàn)步驟,使用其他語言或者數(shù)據(jù)庫需選擇其他對應(yīng)鏡像構(gòu)建容器,具體用法及設(shè)置略有不同。

      2.1 安裝Docker

      系統(tǒng)選用Centos8(由于客觀條件限制,是在Win10系統(tǒng)上用VMware架設(shè)的)。

      按照官方手冊安裝依賴包。

      yum install-y yum-utils device-mapper-persistent-data lVmware2

      更新源(也可以自己修改國內(nèi)鏡像源)。

      yum-config-manager --add-repo \

      https://download.docker.com/linux/centos/docker-ce.repo

      安裝并啟動Docker-CE。

      yum install docker-ce docker-ce-cli containerd.io

      systemctl start docker

      如果出現(xiàn)podman-manpages-1.4.2-5.module_el8.1.0+ 237+63e26edc.noarch錯誤則需要先yum remove刪除后再安裝Docker-CE,如果出現(xiàn)containerd.io版本過低,先升級containerd.io,或安裝時加入—nobest參數(shù)。

      2.2 構(gòu)建容器

      創(chuàng)建多個網(wǎng)絡(luò),每個應(yīng)用使用單獨網(wǎng)絡(luò)與其他應(yīng)用系統(tǒng)隔離。

      docker network create -d bridge app1

      docker network create -d bridge app2

      ……

      使用鏡像運行多個應(yīng)用容器和數(shù)據(jù)庫容器,映射容器端口到宿主機,例如把容器80端口映射到宿主機10001端口,分配各個專用網(wǎng)絡(luò)及掛載持久化資源。

      docker run --name app1 -p 10001:80 -v /var/docker/app1:/var/www/html --network app1 -d php:7-apache

      docker run --name db1 -p 20001:3306 -v /var/docker/db1/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD= 123456 --network app1 -d mysql:5.7

      進(jìn)入PHP容器安裝連接Mysql必需組件,這里安裝需要連接數(shù)據(jù)庫的mysqli和pdo_mysql。

      docker exec -it app1 bash

      cd /usr/local/bin

      ./docker-php-ext-install mysqli pdo_mysql

      退出容器回到宿主機,重啟容器。

      exit

      docker restart app1

      其余幾個系統(tǒng)也參照上述步驟構(gòu)建容器,如果遇到容器無法互訪請配置防火墻或者關(guān)閉防火墻。

      systemctl stop firewalld.service

      這里舉例構(gòu)建應(yīng)用和數(shù)據(jù)庫容器各5個,一共10個容器模擬日常運行的5個應(yīng)用系統(tǒng)。

      2.3 配置系統(tǒng)

      運行容器時使用-v參數(shù)掛載持久化數(shù)據(jù),把系統(tǒng)文件放置在宿主機/var/docker/xx目錄下,如容器app1使用的應(yīng)用文件放置在app1文件夾下,對應(yīng)的數(shù)據(jù)庫db1使用文件放置db1下,其他配置文件和日志文件也可使用多個-v參數(shù)掛載在相應(yīng)位置。完成各個系統(tǒng)配置后通過宿主機上映射的端口訪問系統(tǒng),如訪問app1就輸入宿主機IP地址:10001/應(yīng)用目錄,數(shù)據(jù)庫地址為宿主機IP地址:20001。

      3 性能對比

      用VMware架設(shè)5臺Centos服務(wù)器,分別安裝與Docker容器里一樣的應(yīng)用及數(shù)據(jù)庫,通過容量、資源利用率、多并發(fā)數(shù)測試和系統(tǒng)啟動時間分析優(yōu)缺點。

      3.1 鏡像容量

      如表1所示,對比測試實驗VMware鏡像大約比Docker鏡像多占5倍空間。

      3.2 資源利用率

      VMware虛擬機5臺,每臺分配內(nèi)存2G,平均使用率70%,每臺分配CPU2個核心,空閑時使用率1%,比Docker容器消耗了更多內(nèi)存在運行VMware操作系統(tǒng)。Docker宿主機分配內(nèi)存10G,內(nèi)存平均使用率60%,CPU使用率0%。VMware主機內(nèi)存16G,內(nèi)存平均使用率87%,CPU使用率3%,由此可見Docker資源利用率更佳,本次測驗VMware部署5個應(yīng)用已經(jīng)接近極限,而Docker運行20個容器模擬10個應(yīng)用依然比VMware消耗更少內(nèi)存,如圖1所示。

      3.3 多并發(fā)測試

      使用ApacheBench的ab -c 5000 -n 50000命令對VMware和Docker的同個系統(tǒng)進(jìn)行并發(fā)數(shù)5000總數(shù)50000并發(fā)測試,Docker容器80%響應(yīng)時間小于57ms,但是有10%響應(yīng)時間大于3s,VMware虛擬機50%請求響應(yīng)時間230ms,其余至少響應(yīng)超過1秒,可見高并發(fā)高訪問的情況下,Docker比VMware性能更勝一籌,如表2所示。

      3.4 系統(tǒng)啟動時間

      Docker容器啟動時間大約2秒,VMware虛擬機因為需要啟動整個Centos系統(tǒng),啟動時間大約1分30秒,在遇到問題重啟系統(tǒng)或者日常維護(hù)時,Docker可以更快上線。

      4 結(jié)語

      本次多應(yīng)用集成搭建中使用Docker容器技術(shù)遷移多個應(yīng)用系統(tǒng)至一臺服務(wù)器,遷移過程快捷方便,僅需要一些命令就可以完成環(huán)境部署,比以往單服務(wù)器單應(yīng)用模式節(jié)省大量時間及數(shù)臺服務(wù)器購買資金,如果應(yīng)用操作系統(tǒng)是windows,還能節(jié)省windows許可證費用,日常維護(hù)和操作系統(tǒng)補丁升級工作量也大大減少,甚至跟VMware相比也毫不遜色。

      通過使用Docker容器合理利用資源,實現(xiàn)了單臺服務(wù)器運行多應(yīng)用系統(tǒng)的目標(biāo)。以本單位現(xiàn)有情況,安全穩(wěn)定性要求較高的核心應(yīng)用大約占40%,其余是要求較低的非核心應(yīng)用,如保持核心應(yīng)用不變,把非核心應(yīng)用全部遷移至Docker容器,可以減少一半服務(wù)器數(shù)量,節(jié)約大筆經(jīng)費,降低運維人員工作量。

      參考文獻(xiàn)

      [1] Nigel Poulton.深入淺出Docker[M].北京:人民郵電出版社,2019.

      Construction of? Multiple Application Integration Based on Docker Container

      ZHANG Shi-chao

      (National Radio and Television Administration 731 Station, Longyan? Fujian? 364000)

      Abstract:In view of the contradiction between the exploding number of application systems and the rising maintenance cost, migrate applications to containers based on Docker technology, achieve network isolation, build multi-application integration, compare and analysis with VMware virtual machine.

      Key words:Docker;VMware;container

      猜你喜歡
      容器
      Different Containers不同的容器
      人心像一個容器
      難以置信的事情
      松潘县| 手游| 东丰县| 扎兰屯市| 嘉黎县| 内江市| 安阳县| 巴马| 隆昌县| 贺州市| 大方县| 闵行区| 朝阳市| 贵溪市| 斗六市| 金溪县| 东城区| 新乡县| 平安县| 苏尼特左旗| 兰溪市| 井冈山市| 登封市| 郯城县| 唐河县| 凌海市| 商洛市| 务川| 沙雅县| 称多县| 和田县| 会宁县| 武定县| 兰州市| 肇东市| 阳曲县| 嘉荫县| 积石山| 遂宁市| 新乡县| 武陟县|