Docker核心技術和基礎概念

虛擬化分類:html

    主機級虛擬化nginx

    容器虛擬化git

虛擬化核心技術:web

    NameSpek(命名空間);docker

          做用:內容隔離tomcat

    Cgroup(控制組);網絡

          做用:資源分割和控制架構

    Chroot(root切換);ide

          做用:root切換性能

    LXC(Linux 虛擬機實現)

          做用:Linux虛擬化的具體實現。

Docker簡介

    Docker只是Linux內核虛擬化的一個管理應用軟件,實際上使用的核心技術仍是Linux內核虛擬化相關技術。

    Docker分爲企業版(Docker-EE)和社區版(Docker-CE)

    Docker引擎過渡史: LXC>Libcontainer>runC

   

Docker-Registry

    Docker-Registry是Docker的鏡像管理倉庫,和yum相似,你可使用Docker官方提供的公共Docker-Hub,也能夠本身搭建私有Registry。

    倉庫分爲頂級倉庫和組織倉庫,如Nginx、CentOS、Ubuntu等就是頂級倉庫,使用應用名稱命名;組織倉庫是我的或者企業註冊生成的倉庫,格式爲:我的標識符/鏡像名稱,如:aliyun/nginx:laster;baidu/tomcat:V2


Docker-Images

   Container的鏡像文件,一個惟一的鏡像文件應當由鏡像名和標籤構成,格式爲:鏡像名:標籤,如:nginx:V2;nginx:V3;tomcat:laster

   Image是採用Union FS技術,將其設計爲分層存儲的架構,前一層是後一層的基礎,最底層爲bootfs(用於系統引導的文件系統,提供系統內核,容器啓動完成後會被卸載以節約資源),其次爲rootfs(由內核掛載爲「只讀」模式,然後經過「聯合掛載」技術額外掛在一個「可寫」層)。

image.png

Images-tags

   做用是爲了區分相同應用鏡像的不一樣版本


鏡像加速

   由於國家防火牆的緣由,從Docker-Hub下載鏡像文件速度很慢而且容易出現網絡鏈接的錯誤,因此國內就有了鏡像加速,國內有阿里雲等雲服務商提供加速服務。


Container

   Image是靜態的文件,Container是根據Image生成的容器進程 ,鏡像使用的是分層存儲,容器也是如此,每個容器運行時,是以鏡像爲基礎層,在其上建立一個當前容器的存儲層,咱們能夠稱這個爲容器運行時讀寫而準備的存儲層爲容器存儲層容器存儲層的生存週期和容器同樣,容器消亡時,容器存儲層也隨之消亡。所以,任何保存於容器存儲層的信息都會隨容器刪除而丟失。按照 Docker 最佳實踐的要求,容器不該該向其存儲層內寫入任何數據,容器存儲層要保持無狀態化。全部的文件寫入操做,都應該使用 數據卷(Volume)、或者綁定宿主目錄,在這些位置的讀寫會跳過容器存儲層,直接對宿主(或網絡存儲)發生讀寫,其性能和穩定性更高。


Volume

數據卷 是一個可供一個或多個容器使用的特殊目錄,它繞過 UFS,能夠提供不少有用的特性:

  • 數據卷 能夠在容器之間共享和重用

  • 對 數據卷 的修改會立馬生效

  • 對 數據卷 的更新,不會影響鏡像

  • 數據卷 默認會一直存在,即便容器被刪除


掛載主機目錄

    除了使用Volume,咱們還能夠將主機目錄掛載到Container中,用來存放須要持久化的數據。


Network

若是你用過VMware就會知道VMware安裝後會建立出幾個虛擬的網卡,用來虛擬機之間、虛擬機和主機之間的通信。Docker同樣,在安裝的時候會默認建立一個網橋,用來進行網絡通信。

相關文章
相關標籤/搜索