docker是乙個開源的應用容器引擎,基於go語言開發並遵循了apache2.0協議開源。docker是一種容器技術,它可以對軟體及其依賴進行標準化的打包;容器之間相互獨立,基於容器執行的應用之間也是相互隔離的;並且容器之間是共享乙個os kernel的,充分利用伺服器資源,容器可以執行在很多主流的作業系統之上。
docker本質就是宿主機的乙個程序,docker是通過namespace實現資源隔離,通過cgroup實現資源限制,通過寫時複製技術(copy-on-write)實現了高效的檔案操作(類似虛擬機器的磁碟比如分配500g並不是實際占用物理磁碟500g)
namespace命名空間
cgroup的功能
docker 包含了一下幾個重要主要部分:
docker 客戶端/守護程序
docker是c/s架構的程式:docker客戶端向docker伺服器端,也就是docker的守護程序發出請求,守護程序處理完所有的請求工作並返回結果。
docker 客戶端對伺服器端的訪問既可以是本地也可以通過遠端來訪問。
docker image 映象
docker的映象是乙個層疊的唯讀檔案系統,最低端是乙個引導檔案系統(即bootfs),第二層是root檔案系統(即rootfs),它位於bootfs之上,可以是一種或多種作業系統,比如ubuntu或者centos。在docker中,root檔案系統永遠只能是唯讀狀態,並且docker運用聯合載入技術又會在root檔案系統之上載入更多的唯讀檔案系統,聯合載入指的是一次載入多個檔案系統,但是在外面看起來只能看到乙個檔案系統,聯合載入會將各層檔案系統疊加到一起,這樣最終的檔案系統會包含所有的底層檔案和目錄,docker將這樣的檔案系統稱為映象
docker container 容器
當乙個容器啟動時,docker會在該映象的最頂層載入乙個讀寫檔案系統,也就是乙個可寫的檔案層,我們在docker執行的程式,就是在這個層中進行執行的,當docker第一次啟動乙個容器時,初始的讀寫層是空的,當檔案系統發生變化時,這些變化都會應用到這一層上,比如像修改乙個檔案,該檔案首先會從讀寫層下面的唯讀層複製到該讀寫層,該檔案的唯讀版本依然存在,但是已經被讀寫層中的該檔案副本所隱藏,這就是docker的乙個重要技術:寫時複製(copy on write)。每個唯讀映象層都是唯讀的,永遠不會變化,當建立乙個新容器時,docker會構建出乙個映象棧。
映象與容器的
docker registry 倉庫
**:
Docker 基本命令使用介紹
docker命令列學習 docker run docker run help 老實說這條最管用了 docker run it 互動模式,允許控制台輸出 docker run d detach,以後臺程序的形式執行,可以與 it同時生效 docker run name your docker name...
Docker安裝和基本使用和介紹
1.為什麼tomcat由原來的10m左右變成了現在的500m?因為現在的tomcat不僅僅是乙個tomcat,還包含了執行時需要的環境 jdk centos,所以變大了。2.為什麼centos由原來的3.6g變成了現在的203m?由於是在虛擬機器的基礎上建立虛擬機器,所以可以復用bootfs,包變小...
Docker入門介紹
docker特點 1 上手快。使用者只需要幾分鐘,就可以把自己的程式 docker化 docker依賴於 寫時複製 copy on write 模型,使修改應用程式也非常迅速,可以說達到 隨心所致,即改 的境界。隨後,就可以建立容器來執行應用程式了。大多數docker容器只需要不到1秒中即可啟動。由...