Docker 介紹
Docker 是開源的一個基于輕量級虛擬化技術(shù)的容器引擎項目报亩。它通過分層鏡像標(biāo)準(zhǔn)化和內(nèi)核虛擬化技術(shù)响巢,使得應(yīng)用開發(fā)者和運維工程師可以以統(tǒng)一的方式跨平臺發(fā)布應(yīng)用颤陶,并且以幾乎沒有額外開銷的情況下提供資源隔離的應(yīng)用運行環(huán)境胞谭。云服務(wù)是基于操作系統(tǒng)級別的隔離蛔琅,在同一臺機器上虛擬多個主機疾捍,而docker的實現(xiàn)是將操作系統(tǒng)環(huán)境和應(yīng)用進行移植奈辰。
Docker中幾個重要概念
1. 鏡像(Image)
原理: 鏡像是一堆只讀層(read-only layer)的統(tǒng)一視角。
這些只讀層重疊到一起構(gòu)成了Docker的內(nèi)部實現(xiàn)細節(jié)乱豆,在主機(運行Docker的機器)的文件系統(tǒng)可以訪問奖恰。統(tǒng)一文件系統(tǒng)(union file system)技術(shù)能夠?qū)⒉煌膶诱铣梢粋€文件系統(tǒng),為這些層提供一個統(tǒng)一的視角,這樣可以隱藏多層的存在瑟啃,在用戶的角度看來论泛,只存在一個文件系統(tǒng)。在一個運行的容器內(nèi)部蛹屿,這些層次是不可見的屁奏,只有一個只讀的統(tǒng)一文件系統(tǒng)。
作用: 鏡像可以用來創(chuàng)建Docker容器错负,鏡像和容器的關(guān)系類似于類和對象的關(guān)系坟瓢。一個鏡像可以包含一個完整的操作系統(tǒng)環(huán)境和用戶所需要的其它應(yīng)用程序。Docker的鏡像是只讀的犹撒,一個鏡像可以創(chuàng)建多個容器折联。
2. 容器(Container)
原理: 容器的定義和鏡像類似,也是一堆層次的統(tǒng)一視角识颊,區(qū)別在于容器的最上面那一層是可讀可寫的诚镰。
作用: Docker利用容器來開發(fā)、運行應(yīng)用祥款,容器是鏡像創(chuàng)建的實例清笨。它可以被啟動、開始刃跛、停止抠艾、刪除。每個容器都是相互隔離的奠伪、保證具有一個安全的平臺跌帐。
容器=鏡像+可讀層
3. 運行態(tài)容器(Running Container)
定義: 一個可讀寫的統(tǒng)一文件系統(tǒng)+隔離的進程空間和包含其中的進程首懈。
4. 倉庫(Repository)
定義: 倉庫是集中存放鏡像文件的場所
每個倉庫中包含了多個鏡像绊率,每個鏡像有不同的標(biāo)簽(Tag)。
Windows 容器 和 Linux 容器結(jié)構(gòu)
定義: 容器是隔離資源究履,可移植的運行時環(huán)境滤否。總的來說最仑,容器就是一個隔離的位置藐俺,提供一個虛擬化的環(huán)境,應(yīng)用程序可以在其中運行泥彤,而不會影響系統(tǒng)的其它部分欲芹,并且系統(tǒng)也不會影響該應(yīng)用程序。
Windows 容器類型
- Host OS: 主機操作系統(tǒng)吟吝,Docker守護進程在其上運行
- Base OS Container: 基礎(chǔ)操作系統(tǒng)鏡像菱父,容器可以直接與Host OS共享內(nèi)核,不必要使用此基礎(chǔ)鏡像
- Kernal: 主機操作系統(tǒng)內(nèi)核
1. windows server container
通過進程和命名空間隔離技術(shù)提供應(yīng)用程序隔離。Windows Server 容器與容器主機(Host OS)和該主機上運行的所有容器共享內(nèi)核浙宜。
2. Hyper-V container
通過在高度優(yōu)化的虛擬機中運行每個容器官辽,在由Windows Server 容器提供的隔離上擴展。在此配置中粟瞬,容器主機的內(nèi)核不與其他Hyper-V容器共享同仆。
此圖片很好的概述了各個部件相互之間的關(guān)系,多個只讀的鏡像包括基礎(chǔ)操作系統(tǒng)鏡像和應(yīng)用程序鏡像為容器的運行提供依賴環(huán)境裙品,sandbox 中可以進行讀寫操作
Linux 容器
本文摘自
http://dockone.io/article/783
https://docs.microsoft.com/en-us/virtualization/windowscontainers/about/
http://www.floydhilton.com/docker/2017/03/31/Docker-ContainerHost-vs-ContainerOS-Linux-Windows.html