最近準備離職了,提前學習些新的知識,找工作的時候發(fā)現(xiàn)了很多公司招聘需求上都要求要懂docker和k8s,所以學習一下吧。
一、容器介紹
既然要學docker就首先要了解一下什么是容器:容器也是一種虛擬化的方案。但是容器與虛擬機不同,虛擬機是通過中間層將一臺或多臺虛擬系統(tǒng)獨立運行在硬件之上。而容器是運行在操作系統(tǒng)內(nèi)核之上的,也可以稱容器為操作系統(tǒng)虛擬化。
二、容器的優(yōu)缺點
2.1 優(yōu)點
速度快:1、運行時性能可以獲得極大的提升(官方經(jīng)典案例給出的提升率時97%)。
? ? ? ? ? ? ? ?2、管理操作快:啟動、停止、重啟、刪除等等運維操作都是以毫秒或秒為單位計算的。
敏捷:像虛擬機一樣敏捷,而且便宜,在裸機上部署操作極為簡單像點擊 “部署按鈕”一樣簡單。
靈活:將應(yīng)用和系統(tǒng)“容器化”,僅需要添加或減少即可,不需要添加額外的操作系統(tǒng)。
輕量:你會擁有足夠的“操作系統(tǒng)”,在一臺服務(wù)器上可以部署100~1000個Containers容器。
便宜:開源的,免費的,低成本的。由現(xiàn)代Linux內(nèi)核支持并驅(qū)動。
ps:輕量級的Container必定可以在一個物理機上開啟更多“容器”,注定比VMs要便宜。
生態(tài)系統(tǒng):Google的趨勢,docker or LXC
云支持:很多云服務(wù)商提供創(chuàng)建和管理Linux容器框架。
? ? ? ? ? ?有關(guān)Docker性能方面的優(yōu)勢,還可參考此IBM工程師對性能提升的評測,從各個方面比VMs(OS系統(tǒng)級別虛擬化)都有非常大的提升。
2.2 缺點
也不能算是docker的缺點吧,只能算是關(guān)于docker的一些爭論:
1、在超復(fù)雜的業(yè)務(wù)系統(tǒng)中,各個容器之間能否實現(xiàn)徹底的資源隔離,單一容器崩潰或資源占用率較高會不會影響到宿主機和其他容器正常運行,到目前還存在疑慮,但是還未發(fā)現(xiàn)出現(xiàn)過上述情況。
2、被私有公司所控制:docker是被一家私有公司控制的,公司都是以營利為目的的,比如目前只能通過黑匣子編出的docker二進制發(fā)行包,未來了也不可能完全免費開放。目前docker已經(jīng)推出了面向公司的企業(yè)級業(yè)務(wù)咨詢、支持和培訓(xùn)。
三、使用docker目的以及使用場景
3.1 使用docker的目的
1、同一主機運行多臺容器的簡單輕量級建模方式。
2、職責的邏輯分離:使研發(fā)人員的研發(fā)環(huán)境,與生產(chǎn)部署環(huán)境達到一致。
3、具有快速高效的開發(fā)生命周期:縮短開發(fā)到生產(chǎn)的生命周期,使開發(fā)、測試、生產(chǎn)環(huán)境達到高度一致,并且都已容器的方式進行交付,避免了額外調(diào)試部署的時間開銷。
4、面向服務(wù)架構(gòu):鼓勵單個容器之運行單一服務(wù),這就形成了一種分布式模型。避免服務(wù)之間相互影響,在定位出現(xiàn)的問題時,也變得簡單。
3.2 docker的使用場景
1、使用docker進行容器化開發(fā)、測試、部署。
2、創(chuàng)建隔離運行環(huán)境。
3、搭建測試環(huán)境。
4、構(gòu)建多用戶的平臺即服務(wù)(Paas)基礎(chǔ)設(shè)施。
5、提供軟件即服務(wù)(SaaS)應(yīng)用程序。
6、高性能、超大規(guī)模的宿主機部署
四、docker基本介紹
4.1 docker服務(wù)的基本組成
docker client 客戶端
docker deamon 守護進程
docker image 鏡像 容器的基石保存了啟動容器的各種條件
ps:鏡像其實是由多個層來組成的,引導(dǎo)層,文件系統(tǒng)層,軟件層,這些都是屬于只讀文件系統(tǒng),也就是說多個文件系統(tǒng)共同組成,鏡像也能相互疊加在一起.有子鏡像和父鏡像。
層疊只讀文件系統(tǒng) 聯(lián)合加載(union mount)
rootfs? ?根文件系統(tǒng)
bootfs 引導(dǎo)文件系統(tǒng)
4.2?Docker Registry 倉庫
公有 Docker Hub https://hub.docker.com/
私有? 自己搭建(后續(xù)會出博客)
4.3?Docker依賴的linux內(nèi)核特性
Namespaces 命名空間 :
????????編程語言
????????封裝 代碼隔離
????????操作系統(tǒng)
????????進程資源的隔離
????????進程,網(wǎng)絡(luò),文件系統(tǒng)....
????????文章來源地址http://www.zghlxwxcb.cn/news/detail-846252.html
????????PID 進程隔離
????????NET 管理網(wǎng)絡(luò)接口
????????IPC 管理跨進程通信的訪問
????????MNT 管理掛載點
????????UTS (Unix Timesharing System)隔離內(nèi)核和版本標示
Control groups(cgroups) 控制組:用來完成命名空間的隔離
????????資源限制(如限制mem,超出oom)
????????優(yōu)先級設(shè)定(設(shè)定那個進程組使用更多資源)
????????資源計量(計算進程組使用了多少資源,尤其是在計費系統(tǒng)中)
????????資源控制(將進程組掛起,恢復(fù))
4.4? docker容器的能力
? ? ? ? 文件系統(tǒng)隔離:每個文件都有自己的root文件系統(tǒng)。
? ? ? ? 進程隔離:每個容器都運行在自己的進程環(huán)境中。
? ? ? ? 網(wǎng)絡(luò)隔離:容器間的虛擬網(wǎng)絡(luò)接口和IP地址都是分開的。
? ? ? ? 資源隔離和分組:使用cgroups將cpu和內(nèi)存之類的資源獨立分配給每個docker容器。文章來源:http://www.zghlxwxcb.cn/news/detail-846252.html
????????
到了這里,關(guān)于docker學習筆記 一-----容器介紹的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!