李娜

摘要:相比傳統的虛擬化技術存在的諸如配置繁瑣、啟動速度慢、硬件資源浪費等問題,Docker以一種輕量化的方式管理資源,將運行環境和應用構建到一個Docker鏡像中,并快速的運行和分發Docker容器,達到資源的最大化利用。本文介紹了容器技術的發展歷程,對Docker的基本原理和架構進行了分析,最后給出Docker比較流行的應用場景。
關鍵詞:虛擬化;容器;docker
中圖分類號:TP308 文獻標識碼:A 文章編號:1007-9416(2018)11-0095-02
0 引言
目前,容器技術發展得如火如荼,不管是大型互聯網企業還是初創公司,都在開發部署中應用容器技術來降低成本,促進產品的快速迭代。其中,以docker為代表的容器技術發展得最好,迅速占領了市場。
1 容器技術的發展
在docker之前,已經出現了多種容器技術,用于進程資源隔離;2008年LXC發布,它是第一個比較完善的容器技術,建立在cgroup和namespace之上;2013年,docker誕生,隨著各大公司的廣泛應用及活躍的社區支持,加上不斷完善的體系架構及相關組件和工具,目前已成為容器技術的事實標準。
2 docker技術介紹
2.1 什么是docker
docker是基于Go語言實現的輕量級虛擬化技術,為應用提供快速、靈活的部署方式,同時,在云計算平臺中正逐漸改變當前Paas以及Iaas的架構模式[1],各大云服務提供商都相繼提供了基于docker的容器云服務。Docker用一種比較形象的描述方式就好比大船上的集裝箱,這些集裝箱內部根據具體的貨物類型進行了標準化分配,集裝箱之間相互隔離互不影響。因此,在運輸過程中,就不需要針對不同類型的貨物建立相應的堆放環境。在實際的IT應用場景,各種系統由于采用的語言、框架或者版本的不同,就可以使用docker容器,按照需要搭建應用環境。
2.2 docker與虛擬機
說到docker容器,就不得不提虛擬機,它們都用于資源和環境的隔離[2]。虛擬機是利用Hypervisor來虛擬化硬件資源,比如CPU、內存、IO設備等[3],本質上是在一臺物理服務器上模擬出多臺虛擬服務器,這些虛擬服務器可以像真實的服務器一樣進行各種應用的部署,代價就是每臺虛擬機需要更多的硬件資源。而docker是建立在宿主操作系統內核基礎之上,它利用cgroup和namespace進行資源隔離,不需要Guest OS,運行在Docker容器里的應用是直接使用物理機的硬件資源,因此在硬件的利用率上相比于虛擬機有一定的優勢。
總的來說,虛擬機與Docker各具優勢和劣勢,可在不同的場景應用。比如,docker具有輕量化、啟動快、占用資源少等特點,可以在一臺物理機上開啟上百個docker容器,并可進行快速的應用部署;但相對于虛擬機,在安全性、資源隔離程度等方面還有所不足。
3 Docker的技術架構
Docker整體上采用C/S架構,用戶通過接口向服務器發送請求命令,服務端進行相應的操作,比如構建鏡像、運行和分發容器,如圖1所示為Docker的基礎架構圖。從架構組成上看,Docker服務端分為Docker鏡像、Docker容器、Docker倉庫這三個主要組件。
3.1 Docker鏡像
Docker鏡像是一個多層次的只讀應用模板,具有完整運行環境的程序包,比如Linux操作系統、Nginx環境或者Java的web應用等,并且這些鏡像具有高度的可復用性。
3.2 Docker容器
Docker容器是鏡像的運行實例,一個鏡像可以對應多個容器,相對鏡像來說,容器是動態的,可以隨時啟動、停止和移除。用戶可以根據具體的需求設置啟動參數,比如指定容器運行所需的硬件配置。
3.3 Docker倉庫
Docker倉庫是用于存放鏡像的,分為私有和公有兩種,在拉取鏡像時沒有指定倉庫地址,默認是來自Docker公司維護的公有庫[4]。出于對速度以及安全的考慮,可以在內網中搭建docker私有鏡像庫。
4 Docker的應用場景
Docker主要包括輕量化、快速部署、移植性強以及資源隔離等特點,這正好可以解決當前IT基礎架構中遇到的問題,因此,Docker的應用場景也圍繞著這些特點。
4.1 簡化部署配置
可以根據需要將特定的環境和應用構建成鏡像,不必為了部署各種應用而對服務器自身的環境進行繁瑣的配置,同一鏡像可以在不同的主機中運行。
4.2 環境標準化
為了解決應用開發、測試和部署的環境不一致問題,通過標準化應用環境,應用到開發流程的各個階段,減少因環境差異問題帶來的系統運行故障。
4.3 微服務
微服務是將一個大的系統拆分成多個小服務,并需要快速開發和部署上線,使用Docker正好可以滿足這些要求,每個鏡像對應一個服務,可以快速的構建打包和分布式部署。
5 結語
綜上所述,Docker可以快速的進行應用構建和部署,搭建具有高擴展性和伸縮性的分布式系統,并可以充分利用硬件資源,減少部署和運維成本。雖然相比于傳統的虛擬化技術,還存在著一些問題,但隨著云計算的發展,Docker會得到更大的應用。
參考文獻
[1]蹇旭,謝科,符紅霞.云計算環境下信息資源共享管理研究[J].計算機光盤軟件與應用,2014(12):35.
[2]于建威,李知杰,趙健飛.基于OpenStack的Docker應用[J].軟件導刊,2015(09):46-48.
[3]朱軍紅,唐明根,孫學杉.虛擬化技術分析[J].電腦知識與技術,2016(04):229-230.
[4]張延冬,邢艷芳.基于Docker的運維平臺設計[J].計算機時代,2018(04):16-18.
The Development and Application Research of Docker Container Technology
LI Na
(Chongqing Youth Vocational & Technical College, Chongqing? 400712)
Abstract:Compared with traditional virtualization technologies, such as cumbersome configuration, slow startup speed, waste of hardware resources and other problems, Docker manages resources with a lightweight way, and it builds the operating environment and applications into a Docker image, then quickly runs and distributes Docker containers, and maximize the utilization of resources. This paper introduces the development process of container technology, analyzes the basic principle and architecture of Docker, and finally presents the popular application scenarios of Docker.
Key words:virtualization; container; docker