1. 程式人生 > >docker如何快速瞭解並使用(詳解)(第一篇)(共五篇)

docker如何快速瞭解並使用(詳解)(第一篇)(共五篇)

Docker

  1. docker的出現
    Docker是誕生於2013年,是dotCloud的一個開源專案,基於Google推出的GO語言實現。遵從Apache2.0協議。
  2. docker的介紹
    Docker的目標是實現輕量級的作業系統虛擬化的解決方案。
    Docker的基礎是Linux容器(LXC)等技術,(LXC系統提供工具來管理容器,具有先進的網路和儲存支援,還有最小容器作業系統模版的廣泛選擇)。
    在LXC的基礎上Docker進行了進一步的封裝,使用者不需要去關心容器的管理,操作更簡單。就像操作一個快速輕量的虛擬機器一樣簡單。
  3. docker的優勢
  4. 更快速的交付和部署。
    Docker可以在整個開發週期輔助實現快速交付,允許開發者在裝有應用和伺服器本地容器做開發。可以直接整合到可持續的開發流程中。
    Docker可以快速建立容器,快速迭代應用程式,過程全程可見,可以節約開發測試部署的時間。
    例如:用一個標準的映象,構建一套開發容器,開發完成後,運維可以直接使用容器這個容器部署程式碼。
  5. 高效的部署和擴容。
    Docker容器幾乎可以在任意平臺執行,包括物理機,虛擬機器,公有云,私有云,個人電腦,伺服器等。使用者可以把一個應用程式從一個平臺直接遷移到另一個平臺上。
    Docker的相容性和輕量特性可以輕鬆的實現負載的動態管理
  6. 更高的資源利用率。
    Docker對系統的利用率很高,一臺主機可以同時執行上千個Docker容器,容器除了執行其中的應用,不會消耗額外的系統資源,使應用效能很高。開銷減少。
    例如:傳統的虛機方式執行10個不同的應用,需要起十個虛機.
    而Docker只需要啟動10個隔離的應用即可。
    4,更簡單的管理。
    Docker只需要小小的修改,就可以代替大量的更新工作,所有的改動都
    增量的方式被分發和更新,實現自動化高效的管理。

Docker引擎
Docker引擎是C/S結構的應用,主要元件如下。
C/S結構的應用

  1. Server是一個常駐程序

  2. RESET API 實現了client(客戶端)和server(伺服器)的互動協議

  3. CLI實現了容器和映象的管理,提供統一的操作介面。
    Docker架構
    Docker使用C/S架構,Cilent(客戶端)通過介面與Server(伺服器)進行通訊實現容器的構建,執行和釋出。Cilent和Server可以執行在同一臺叢集,也可以跨主機實現遠端通訊。
    在這裡插入圖片描述

  4. Client(客戶端)

  5. Registry(登錄檔)

  6. Images(映象)

  7. Containers(容器)

  8. Docker deamon 是docker的守護程序,Client通過命令與Docker deamon進行通訊,完成Docker相關操作。

  9. Docker host是docker的網路模式,網路模式共四種。
    核心概念:
    映象(image)
    Docker image只是一個只讀的模版。
    映象(Image)是(read-only layer)的統一視角
    Union File System將不同的層整合成一個檔案系統,提供了 一個統一的視角,可以隱藏多層的存在,對使用者來說,只是有一個檔案系統而已。
    在這裡插入圖片描述
    例如:一個映象可以包含一個完整的作業系統環境,裡面僅僅安裝了Apache或者使用者需要的其他的應用程式。映象可以用來建立Docker容器,一個映象中可以建立很多容器。Docker提供了一個簡單的機制來建立,更新現有的映象,使用者也可以下載一個做好的映象直接使用。
    倉庫(repository)
    Repository是一個存放映象檔案的場所。
    倉庫註冊伺服器上往往存在多個倉庫,每個倉庫中又包含多個映象,每個映象有不同的標籤(tag)
    倉庫分為public和private兩種形式。最大的公開倉庫是 Docker Hub存放了數量龐大的映象供使用者下載。國內有時速雲,網易雲等。使用者也可以在本地網路建立一個私有倉庫。
    Docker倉庫跟Git類似,註冊服務可以理解為GitHub這種託管服務。
    容器(Container)
    Docker利用容器來執行應用,容器是從映象創建出來的執行例項,容器可以,被啟動,開始,停止,刪除。每個容器都可以相互隔離,保證平臺安全。
    容器和映象的區別是映象是隻讀的,容器最上面的一層是可讀可寫的。
    在這裡插入圖片描述
    執行時的容器被定義為一個可讀可寫的統一的檔案系統。加上隔離程序空間和包含其中的程序。
    在這裡插入圖片描述
    檔案隔離技術使Docker成為了一個很有潛力的虛擬化技術,一個容器中的程序可能會對檔案進行修改,刪除,建立,這些改變作用於可讀寫層。
    PS:(圖片是網上找的,內容屬於個人統計)
    關於docker的一共寫了五篇,如果需要推薦檢視其餘四篇,以後有了新的會及時更新