docker不是一種操作系統(tǒng);操作系統(tǒng)是一組主管并控制計(jì)算機(jī)操作、運(yùn)用和運(yùn)行硬件、軟件資源和提供公共服務(wù)來組織用戶交互的相互關(guān)聯(lián)的系統(tǒng)軟件程序,而docker是一個(gè)用于開發(fā),交付和運(yùn)行應(yīng)用程序的開放平臺(tái),借助Docker還可以與管理應(yīng)用程序相同的方式來管理基礎(chǔ)架構(gòu)。
本教程操作環(huán)境:linux7.3系統(tǒng)、docker19.03版、Dell G3電腦。
docker不是一種操作系統(tǒng)
docker本質(zhì)上是一個(gè)附加系統(tǒng),準(zhǔn)確來說是一個(gè)用于開發(fā),交付和運(yùn)行應(yīng)用程序的開放平臺(tái);Docker可以使開發(fā)者能夠?qū)?yīng)用程序與基礎(chǔ)架構(gòu)分開,從而可以快速交付軟件;借助Docker還可以與管理應(yīng)用程序相同的方式來管理基礎(chǔ)架構(gòu)。
docker并不是一個(gè)操作系統(tǒng),docker是一個(gè)容器,可以把它比喻成虛擬的硬件,在硬件(主機(jī))上安裝操作系統(tǒng),redis的鏡像肯定是一個(gè)系統(tǒng)裝了redis,并不是單單一個(gè)redis,可以進(jìn)入該鏡像使用相關(guān)命令查看系統(tǒng)信息。
操作系統(tǒng)是什么
操作系統(tǒng)(英語:Operating System,縮寫:OS)是一組主管并控制計(jì)算機(jī)操作、運(yùn)用和運(yùn)行硬件、軟件資源和提供公共服務(wù)來組織用戶交互的相互關(guān)聯(lián)的系統(tǒng)軟件程序。根據(jù)運(yùn)行的環(huán)境,操作系統(tǒng)可以分為桌面操作系統(tǒng),手機(jī)操作系統(tǒng),服務(wù)器操作系統(tǒng),嵌入式操作系統(tǒng)等。
docker是什么
Docker 是一個(gè)開源的應(yīng)用容器引擎,讓開發(fā)者可以打包他們的應(yīng)用以及依賴包到一個(gè)可移植的鏡像中,然后發(fā)布到任何流行的 Linux或Windows操作系統(tǒng)的機(jī)器上,也可以實(shí)現(xiàn)虛擬化。容器是完全使用沙箱機(jī)制,相互之間不會(huì)有任何接口。
擴(kuò)展知識(shí)
Docker 的優(yōu)點(diǎn)
Docker 是一個(gè)用于開發(fā),交付和運(yùn)行應(yīng)用程序的開放平臺(tái)。Docker 使您能夠?qū)?yīng)用程序與基礎(chǔ)架構(gòu)分開,從而可以快速交付軟件。借助 Docker,您可以與管理應(yīng)用程序相同的方式來管理基礎(chǔ)架構(gòu)。通過利用 Docker 的方法來快速交付,測試和部署代碼,您可以大大減少編寫代碼和在生產(chǎn)環(huán)境中運(yùn)行代碼之間的延遲。
特性
在docker的網(wǎng)站上提到了docker的典型場景:
-
Automating the packaging and deployment of applications(使應(yīng)用的打包與部署自動(dòng)化)
-
Creation of lightweight, private PAAS environments(創(chuàng)建輕量、私密的PAAS環(huán)境)
-
Automated testing and continuous integration/deployment(實(shí)現(xiàn)自動(dòng)化測試和持續(xù)的集成/部署)
-
Deploying and scaling web apps, databases and backend services(部署與擴(kuò)展webapp、數(shù)據(jù)庫和后臺(tái)服務(wù))
由于其基于LXC的輕量級(jí)虛擬化的特點(diǎn),docker相比KVM之類最明顯的特點(diǎn)就是啟動(dòng)快,資源占用小。因此對于構(gòu)建隔離的標(biāo)準(zhǔn)化的運(yùn)行環(huán)境,輕量級(jí)的PaaS(如dokku), 構(gòu)建自動(dòng)化測試和持續(xù)集成環(huán)境,以及一切可以橫向擴(kuò)展的應(yīng)用(尤其是需要快速啟停來應(yīng)對峰谷的web應(yīng)用)。
構(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è)問題。
PaaS環(huán)境是不言而喻的,其設(shè)計(jì)之初和dotcloud的案例都是將其作為PaaS產(chǎn)品的環(huán)境基礎(chǔ)
因?yàn)槠錁?biāo)準(zhǔn)化構(gòu)建方法(buildfile)和良好的REST API,自動(dòng)化測試和持續(xù)集成/部署能夠很好的集成進(jìn)來
因?yàn)長XC輕量級(jí)的特點(diǎn),其啟動(dòng)快,而且docker能夠只加載每個(gè)container變化的部分,這樣資源占用小,能夠在單機(jī)環(huán)境下與KVM之類的虛擬化方案相比能夠更加快速和占用更少資源
推薦學(xué)習(xí):《docker視頻教程》