企業(yè)門戶網(wǎng)站功能列表杭州seo 云優(yōu)化科技
什么是docker?
docker是基于Go語言編寫的開源容器引擎,是操作系統(tǒng)級(jí)別的輕量級(jí)虛擬技術(shù)。主要用于應(yīng)用打包、分發(fā)、部署。
打包:軟件開發(fā)過程中,打包是將程序打包成軟件包或者鏡像的過程;在容器化程序中,打包是將應(yīng)用程序依賴項(xiàng)、應(yīng)用程序打包成鏡像的過程。
分發(fā):將打包完成的鏡像上傳至對(duì)應(yīng)的倉(cāng)庫(kù),已授權(quán)的其他用戶可以獲取該鏡像。
部署:創(chuàng)建并運(yùn)行容器的過程
docker的特性:
容器:是一種輕量級(jí)、獨(dú)立運(yùn)行的軟件包,包含了應(yīng)用程序及其運(yùn)行依賴包(第三方庫(kù)、運(yùn)行環(huán)境配置、配置文件等);容器是鏡像的一個(gè)運(yùn)行實(shí)例。一個(gè)鏡像可以被很多容器使用(這里可以把鏡像想成一個(gè)類,容器就是該類的實(shí)例對(duì)象,在編程過程中,類只需要聲明一次,但是可以new 出無數(shù)個(gè)對(duì)象)。
鏡像:鏡像是一個(gè)只讀文件系統(tǒng),鏡像包含了應(yīng)用程序運(yùn)行所需的所有文件、依賴和配置。
倉(cāng)庫(kù):集中存儲(chǔ)和共享鏡像的平臺(tái),跟git的倉(cāng)庫(kù)是一個(gè)意思。
跨平臺(tái):docker支持跨多個(gè)操作系統(tǒng)和平臺(tái)的應(yīng)用程序部署,無論是Linux、Windows、macos,均可使用相同的鏡像和容器運(yùn)行對(duì)應(yīng)的程序
快速部署和拓展:docker可以將應(yīng)用程序的依賴和程序本身與鏡像一起打包,鏡像又是在容器中運(yùn)行,docker只需要一行命令就可以將容器啟動(dòng),對(duì)應(yīng)的程序便可以在容器中運(yùn)行
簡(jiǎn)化配置和維護(hù):docker容器間相互獨(dú)立,每個(gè)容器的環(huán)境也是獨(dú)立的,能夠減少因?yàn)榕渲没蛘攮h(huán)境沖突的異常出現(xiàn)率,如遇異常也只需要對(duì)對(duì)應(yīng)的容器環(huán)境進(jìn)行維護(hù)即可。
docker與虛擬機(jī)的區(qū)別?
架構(gòu)和隔離級(jí)別:
虛擬機(jī):虛擬機(jī)需要在物理機(jī)上運(yùn)行一個(gè)完整的操作系統(tǒng),然后在該操作系統(tǒng)中去運(yùn)行對(duì)應(yīng)的程序。每個(gè)虛擬機(jī)都有自己的內(nèi)核、操作系統(tǒng)資源;彼此間相互隔離,不受影響。
docker容器:共用宿主機(jī)的內(nèi)核、操作系統(tǒng)資源。是在獨(dú)立的空間(容器)中去運(yùn)行相應(yīng)的程序,容器間相互隔離,不受影響。
資源利用和運(yùn)行效率:
虛擬機(jī):每個(gè)虛擬機(jī)都需要自己的內(nèi)核、操作系統(tǒng),因此會(huì)占用較多的內(nèi)存和存儲(chǔ)空間,并且虛擬機(jī)運(yùn)行時(shí),是運(yùn)行一個(gè)完整的系統(tǒng),因此會(huì)在性能和運(yùn)行效率存在一定的開銷。
docker:容器共享宿主機(jī)的內(nèi)核、操作系統(tǒng);不需要額外的操作系統(tǒng)和資源。容器應(yīng)用也能快速的啟動(dòng),運(yùn)行效率更快。
可移植性和部署:
虛擬機(jī):可以在不同的物理機(jī)服務(wù)器和虛擬化平臺(tái)運(yùn)行,但是需要在這些平臺(tái)安裝和配置相應(yīng)的虛擬機(jī)管理工具和環(huán)境,在配置過程中,可能需要解決環(huán)境沖突導(dǎo)致的問題。
docker:容器可以在docker支持的任何環(huán)境中運(yùn)行,不需要單獨(dú)配置或者安裝相應(yīng)的工具。
docker為什么運(yùn)行比虛擬機(jī)快?
1.docker在啟動(dòng)時(shí),只需要啟動(dòng)容器內(nèi)部的進(jìn)程,虛擬機(jī)在啟動(dòng)時(shí),需要啟動(dòng)完整的操作系統(tǒng),然后在去運(yùn)行對(duì)應(yīng)的程序。
2.docker的磁盤占用和內(nèi)存占用比虛擬機(jī)低。
3.docker容器間公用物理機(jī)的內(nèi)核、操作系統(tǒng),虛擬機(jī)之間的內(nèi)核、操作系統(tǒng)完全獨(dú)立;很占用宿主機(jī)的資源。
如何安裝docker?
以centos系統(tǒng)為例子:
1.更新軟件包列表: sudo yum update
2.安裝必要依賴項(xiàng):sudo yum install -y yum-utils device-mapper-persistent-data lvm2
3.添加Docker穩(wěn)定版存儲(chǔ)庫(kù):sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
4.安裝Docker引擎:sudo yum install docker-ce docker-ce-cli containerd.io
5.啟動(dòng)Docker服務(wù):sudo systemctl start docker
6.驗(yàn)證安裝:sudo docker run hello-world
--------------------學(xué)海無涯