速來圍觀!Docker
主要內(nèi)容
1.?Docker簡介
2.?Docker安裝與啟動
3.?鏡像加速器配置
4.?Docker鏡像操作
5.?Docker容器操作
6.?DockerFile
7.?推送鏡像到阿里云及本地倉庫
8.?Docker容器生命周期
9.?Docker數(shù)據(jù)管理
了解更多,請點擊:https://www.bilibili.com/video/BV1dh411r7RK

一、?Docker簡介
1?什么是Docker
Docker?是基于Go語言實現(xiàn)的開源容器項目。利用操作系統(tǒng)本身已有的機制和特性,可以實現(xiàn)遠超傳統(tǒng)虛擬機的輕量級虛擬化(通俗解釋:Docker內(nèi)嵌極小型系統(tǒng),例如Linux只有5M多,windows也是)。它是內(nèi)核級的虛擬化。期望達到使項目運行環(huán)境“一次封裝,到處運行的目的”。
了解更多,請點擊:https://www.bilibili.com/video/BV1dh411r7RK
在Docker里面可以設(shè)置使用Windows還是Linux系統(tǒng),默認是用Linux系統(tǒng),基于Ubuntu的,只有5M多,包含了最基本功能。
利用docker創(chuàng)建的運行環(huán)境叫做docker容器,容器是通過docker鏡像創(chuàng)建的,docker鏡像文件可以放在私有倉庫中也可以放在共有倉庫中。
官網(wǎng)地址:https://www.docker.com
總結(jié):
學習Docker主要做兩件事情:
1.?在Docker安裝軟件
2.?把項目部署到Docker
了解更多,請點擊:https://www.bilibili.com/video/BV1dh411r7RK
2?Docker和VM的對比
Docker和VM(虛擬機)的功能特別像。下面對比了兩者區(qū)別
2.1?結(jié)構(gòu)區(qū)別
?了解更多,請點擊:https://www.bilibili.com/video/BV1dh411r7RK
2.2?應(yīng)用區(qū)別
?
Docker:面向內(nèi)核、軟件,docker是秒級別的
虛擬機:面向硬件的,分鐘級別
?
3?Docker特點
3.1?效率高
用戶只需要幾分鐘,就可以把自己的程序“Docker化”。Docker依賴于“寫時復制”(copy-on-write)模型,使修改應(yīng)用程序也非常迅速,可以說達到“隨心所致,代碼即改”的境界。
隨后,就可以創(chuàng)建容器來運行應(yīng)用程序了。大多數(shù)Docker容器只需要不到1秒中即可啟動。由于去除了管理程序的開銷,Docker容器擁有很高的性能,同時同一臺宿主機中也可以運行更多的容器,使用戶盡可能的充分利用系統(tǒng)資源。
了解更多,請點擊:https://www.bilibili.com/video/BV1dh411r7RK
3.2?職責明確
使用Docker,開發(fā)人員只需要關(guān)心容器中運行的應(yīng)用程序,而運維人員只需要關(guān)心如何管理容器。Docker設(shè)計的目的就是要加強開發(fā)人員寫代碼的開發(fā)環(huán)境與應(yīng)用程序要部署的生產(chǎn)環(huán)境一致性。從而降低那種“開發(fā)時一切正常,肯定是運維的問題(測試環(huán)境都是正常的,上線后出了問題就歸結(jié)為肯定是運維的問題)”
3.3?結(jié)構(gòu)完整
Docker的目標之一就是縮短代碼從開發(fā)、測試到部署、上線運行的周期,讓你的應(yīng)用程序具備可移植性,易于構(gòu)建,并易于協(xié)作。(通俗一點說,Docker就像一個盒子,里面可以裝很多物件,如果需要這些物件的可以直接將該大盒子拿走,而不需要從該盒子中一件件的取。)
3.4?契合微服務(wù)架構(gòu)
Docker還鼓勵面向服務(wù)的體系結(jié)構(gòu)和微服務(wù)架構(gòu)。Docker推薦單個容器只運行一個應(yīng)用程序或進程,這樣就形成了一個分布式的應(yīng)用程序模型,在這種模型下,應(yīng)用程序或者服務(wù)都可以表示為一系列內(nèi)部互聯(lián)的容器,從而使分布式部署應(yīng)用程序,擴展或調(diào)試應(yīng)用程序都變得非常簡單,同時也提高了程序的內(nèi)省性。(當然,可以在一個容器中運行多個應(yīng)用程序)
了解更多,請點擊:https://www.bilibili.com/video/BV1dh411r7RK
4?Docker架構(gòu)(重點)
?
4.1?Docker daemon(Docker守護進程)
Docker daemon是一個運行在宿主機(DOCKER_HOST)的后臺進程。我們可通過Docker客戶端與之通信。
4.2?Client(Docker客戶端)
Docker客戶端是Docker的用戶界面,它可以接受用戶命令和配置標識,并與Docker daemon通信。圖中,docker build等都是Docker的相關(guān)命令。
了解更多,請點擊:https://www.bilibili.com/video/BV1dh411r7RK
4.3?Images(Docker鏡像)
Docker鏡像是一個只讀模板,它包含創(chuàng)建Docker容器的說明。
和虛擬機中快照是類似的。在虛擬機中根據(jù)快照克隆一臺虛擬機中。
在Docker中根據(jù)Images創(chuàng)建容器。
4.4?Container(容器)
容器是鏡像的可運行實例。
容器就相當于VMware中每一個克隆出來的虛擬機。但是容器要比虛擬機體積小很多。
了解更多,請點擊:https://www.bilibili.com/video/BV1dh411r7RK
4.5?Registry(倉庫)
Docker Registry是一個集中存儲與分發(fā)鏡像的服務(wù)。我們構(gòu)建完Docker鏡像后,就可在當前宿主機上運行。但如果想要在其他機器上運行這個鏡像,我們就需要手動拷貝。此時,我們可借助Docker Registry來避免鏡像的手動拷貝。
一個Docker Registry可包含多個Docker倉庫;每個倉庫可包含多個鏡像標簽;每個標簽對應(yīng)一個Docker鏡像。這跟Maven的倉庫有點類似,如果把Docker Registry比作Maven倉庫的話,那么Docker倉庫就可理解為某jar包的路徑,而鏡像標簽則可理解為jar包的版本號。
了解更多,請點擊:https://www.bilibili.com/video/BV1dh411r7RK