Docker容器引擎詳解


【Docker簡(jiǎn)介】
Docker 是一個(gè)開源的應(yīng)用容器引擎,讓開發(fā)者可以打包他們的應(yīng)用以及依賴包到一個(gè)可移植的容器中,然后發(fā)布到任何流行的Linux機(jī)器或Windows 機(jī)器上,也可以實(shí)現(xiàn)虛擬化,容器是完全使用沙箱機(jī)制,相互之間不會(huì)有任何接口。
一個(gè)完整的Docker有以下幾個(gè)部分組成:
1.?DockerClient客戶端
2.?Docker Daemon守護(hù)進(jìn)程
3.?Docker Image鏡像
4.?DockerContainer容器
?
【Docker特性】
在docker的網(wǎng)站上提到了docker的典型場(chǎng)景:
1. Automating the packaging and deployment of applications(使應(yīng)用的打包與部署自動(dòng)化)
2. Creation of lightweight, private PAAS environments(創(chuàng)建輕量、私密的PAAS環(huán)境)
3. Automated testing and continuous integration/deployment(實(shí)現(xiàn)自動(dòng)化測(cè)試和持續(xù)的集成/部署)
4. Deploying and scaling web apps, databases and backend services(部署與擴(kuò)展webapp、數(shù)據(jù)庫(kù)和后臺(tái)服務(wù))
由于其基于LXC的輕量級(jí)虛擬化的特點(diǎn),docker相比KVM之類最明顯的特點(diǎn)就是啟動(dòng)快,資源占用小。因此對(duì)于構(gòu)建隔離的標(biāo)準(zhǔn)化的運(yùn)行環(huán)境,輕量級(jí)的PaaS(如dokku), 構(gòu)建自動(dòng)化測(cè)試和持續(xù)集成環(huán)境,以及一切可以橫向擴(kuò)展的應(yīng)用(尤其是需要快速啟停來(lái)應(yīng)對(duì)峰谷的web應(yīng)用)。
1.?構(gòu)建標(biāo)準(zhǔn)化的運(yùn)行環(huán)境,現(xiàn)有的方案大多是在一個(gè)baseOS上運(yùn)行一套puppet/chef,或者一個(gè)image文件,其缺點(diǎn)是前者需要base OS許多前提條件,后者幾乎不可以修改(因?yàn)閏opy on write 的文件格式在運(yùn)行時(shí)rootfs是read only的)。并且后者文件體積大,環(huán)境管理和版本控制本身也是一個(gè)問題。
2.?PaaS環(huán)境是不言而喻的,其設(shè)計(jì)之初和dotcloud的案例都是將其作為PaaS產(chǎn)品的環(huán)境基礎(chǔ)
3.?因?yàn)槠錁?biāo)準(zhǔn)化構(gòu)建方法(buildfile)和良好的REST API,自動(dòng)化測(cè)試和持續(xù)集成/部署能夠很好的集成進(jìn)來(lái)
4.?因?yàn)長(zhǎng)XC輕量級(jí)的特點(diǎn),其啟動(dòng)快,而且docker能夠只加載每個(gè)container變化的部分,這樣資源占用小,能夠在單機(jī)環(huán)境下與KVM之類的虛擬化方案相比能夠更加快速和占用更少資源
?
【系統(tǒng)學(xué)習(xí)并掌握Docker】
尚硅谷Docker教程
https://www.bilibili.com/video/BV1Ls411n7mx
課程詳情:
本課程幫助大家對(duì)Docker快速上手,迅速入門。將介紹Docker核心概念,是什么、能干什么、Docker整體架構(gòu),和傳統(tǒng)虛擬機(jī)的區(qū)別。什么是容器虛擬化技術(shù),深刻理解鏡像、容器、倉(cāng)庫(kù)的各種概念和操作。
通過該課程,幫助學(xué)習(xí)者掌握Dockerfile的編寫和構(gòu)建并使用Dockerfile來(lái)制作復(fù)雜鏡像,能夠使用容器卷完成容器間數(shù)據(jù)共享和持久化工作。能夠在Docker容器下進(jìn)行日常軟件的安裝開發(fā)和工程部署,最終可以通過docker和阿里云平臺(tái)完成工作的協(xié)同和發(fā)布。
