1. docker爲什麼出現?
一個產品從開發到上線需要兩套環境,應用環境和部署,經常會出現開發人員抱怨明明自己電腦可以運行,上線就出問題,又或者遇到什麼版本更新,服務就會不能用。環境配置費時費力,以前是靠運維,現在我們有了docker,就可以從開發打包部署上線,一套完成。
比如,一個java項目,打包爲jar,以前是交給運維去配置環境,然後部署上線,現在docker使得我們在打包的時候就帶上環境,下載發佈的鏡像即可運行。
docker的思想來自於集裝箱,核心就是隔離,每個箱子在打包裝箱時都是隔離的,通過這種隔離機制,可以將服務器性能利用到極致。
2. docker可以做什麼?
虛擬化技術:虛擬出一套硬件模擬了一個完整的系統,佔用資源較多,冗餘步驟多,啓動較慢
docker容器技術:
- 不是模擬 一個完整系統,而是直接運行在宿主機,沒有自己的內核,也沒有虛擬的硬件,所以非常輕便,並且每個容器互不影響,互相隔離。
- 可以更快速地交付和部署,一件運行打包鏡像發佈測試
- 更便捷的升級和擴容
- 更簡單的系統運維:開發和測試高度一致
- 更高效的計算資源利用:內核級別的虛擬化,可以運行許多容器實例
3. docker基本組成
鏡像(image) : docker鏡像猶如一個模板,可以通過這個鏡像來創建容器服務,如tomcat鏡像運行就會成爲tomcat01容器來提供服務器,通過這個鏡像可以創建多個容器。
容器(container): 獨立運行一個或一個組應用,通過鏡像來創建,可理解爲一個簡易的Linux系統
倉庫(repository): 存放鏡像的地方,分私有和公有倉庫,常使用阿里雲倉庫配置鏡像加速