docker client(客戶端)/docker daemon(守護程序)
c/s架構的程式,docker客戶端向docker的伺服器端(守護程序)發出請求,守護程序處理完所有的工作,並返回結果
客戶端對伺服器端的訪問既可以在本地也可以在遠端來訪問。
docker image(映象)
1、理解一:映象是docker容器的基石、容器基於映象啟動和執行,映象就好比容器的源**,儲存了用於啟動容器的各種條件。
2、理解二:層疊的唯讀檔案系統,最低端是乙個引導檔案系統(bootfs),docker使用者幾乎永遠不會和引導檔案系統有互動,實際上當乙個容器啟動後,他將會被移動到記憶體中,而引導檔案系統則會被解除安裝。docker映象的第二層是rootfs檔案系統,位於引導檔案系統之上,rootfs檔案系統可以是一種或者是多種的作業系統(cenos,ubuntu),rootfs永遠只能是唯讀狀態,並且docker利用聯合載入技術(一次同時載入多個檔案系統)又會在rootfs之上載入更多的唯讀檔案系統,將這樣的檔案系統稱為docker image(映象)。
乙個映象可以放在另乙個映象的頂部,位於下面的映象稱為負映象,可以以此類推直到映象棧的最底部,最底部的映象稱為基礎映象,也就是rootfs檔案系統。
docker container(容器)
通過映象來啟動,docker的容器是docker的執行單元,容器中可以執行客戶的乙個或者多個程序,如果說映象是docker生命週期中的構建和打包階段,那麼容器則是啟動和執行階段。
容器是怎麼通過映象來啟動的呢?
當乙個容器啟動時,docker會在該映象的最頂層載入乙個讀寫檔案系統,也就是乙個可寫的檔案層,我們在docker中執行的程式,就是在這個層中進行執行的,當docker第一次啟動乙個容器時,初始的讀寫層是空的,當檔案系統發生變化時,這些變化都會應用到這一層上,比如:如果想修改乙個檔案,首先這個檔案會從該讀寫層的下面拷貝到該讀寫層,該檔案的制度版本依然存在,但是已經被該讀寫層的檔案副本所隱藏,這就是docker中的乙個重要的技術-寫時複製(copy on write)每個唯讀映象層都是唯讀的並且永遠不會發生變化,當建立乙個新容器時,docker會構建乙個映象棧(如上圖所示),在棧的最頂層新增可寫層,這個讀寫層+下面的映象層+配置資料=容器。容器的這種特點+映象分層框架可以使我們快速構建映象,並執行包含我們自己的應用程式和服務的容器。
docker registry(倉庫)
docker registry(倉庫)儲存映象的倉庫,倉庫分為公有和私有兩種,docker公司自己提供了乙個公有的docker倉庫(docker hub),我們可以在docker hub上註冊賬號,分享並儲存自己的映象,目前docker hub上已經有了非常多的映象,所以我們也可以通過docker hub來查詢我們需要的映象,為我們節省很多的構建映象的時間,當然我們也可以架設自己私有的倉庫(後面講)。
通過客戶端來訪問docker的守護程序,從而操作docker的容器,而容器是通過映象來建立的,而映象又儲存在倉庫中。
Docker的基本組成
docker通過客戶端訪問守護程序,從而操作docker容器,而容器是通過映象建立的,docker映象儲存在docker倉庫中。docker客戶端向docker守護程序傳送請求,docker守護程序處理完所有請求並返回結果。docker對守護程序的訪問既可以在本地,也可以是遠端訪問。如圖所示,通過d...
Docker的基本組成
docker主要有以下幾部分組成 docker client 客戶端 docker daemon 守護程序 docker image 映象 docker container 容器 docker registry 倉庫 客戶端和守護程序 docker是c s 客戶端client 伺服器server 架...
Docker的基本組成
docker使用c s架構,client 通過介面與server程序通訊實現容器的構建,執行和發布。client和server可以執行在同一臺集群,也可以通過跨主機實現遠端通訊。docker是c s架構的程式,docker的客戶端向守護程序發起請求,守護程序處理完成後返回結果。docker客戶端既可...