什麼是docker?什麼是容器技術?

什麼是容器技術?

IBM DeveloperWorks網站關於容器技術的描述十分準確:它是一種內核輕量級的操作系統層虛擬化技術。可以有效地將由單個操作系統管理的資源劃分到孤立的組中,以更好地在孤立的組之間平衡有衝突的資源使用需求。與虛擬化相比,這樣既不需要指令級模擬,也不需要即時編譯。容器可以在覈心CPU本地運行指令,而不需要任何專門的解釋機制。此外,也避免了準虛擬化和系統調用替換中的複雜性。

什麼是docker?

Docker是基於Go語言進行開發實現,一個開源的應用容器引擎。採用Linux內核的cgroup,namespace,以及AUFS類的Union FS等技術,對進程進行封裝隔離,也可以實現虛擬化,隔離的進程獨立於宿主和其他的隔離進程,因此也稱其爲容器。

可以將Docker容器理解爲一種輕量級的沙盒,每個容器內運行着一個應用,不同的容器相互隔離,容器之間也可以通過網絡互相通信。容器的創建和停止十分快速,幾乎跟創建和終止原生應用一致;另外,容器自身對系統資源的額外需求也十分有限,遠遠低於傳統虛擬機。很多時候,直接將容器當作應用本身也沒有任何問題

爲什麼使用docker

對於開發和運維人員來說,最希望的效果就是一次創建或者配置後,可以在任意地方、任意時間讓應用正常運行,對於算法研究人員來說,可能不同的算法需要不同版本的軟件,那麼在同一個環境中就會存在衝突,docker 的環境隔離就可以很方便的用於不同環境的配置。具體來說,docker優勢主要有以下幾個方面:

  • 快速交付和部署

    使用docker,開發人員可以使用鏡像快速構建一套標準的開發環境;開發完成後,測試和運維人員可以使用完全相同的環境部署代碼,只要是開發測試過的代碼就可以確保在生產環境無縫運行。docker可以快速創建和刪除容器,實現快速迭代。

  • 高效的資源利用

    運行docker容器不需要額外的虛擬化管理程序的支持,docker是內核級的虛擬化,可以實現更高的性能,同時對資源的額外需求很低。

  • 輕鬆的遷移和擴展

    docker容器幾乎可以在任意的平臺上運行,包括物理機、虛擬機、公有云、私有云、服務器等,同時支持主流的操作系統發行版本,這種兼容性讓用戶可以在不同平臺間輕鬆的遷移應用。

  • 簡單的更新管理

    使用Dockerfile生成鏡像的方式,只需要小小的配置修改,就可以替代以往大量的更新工作,所有的修改都以增量的方式進行分發和更新,從而實現自動化且高效的容器管理。

docker與容器區別

docker也可以稱爲容器,那麼docker 與容器的區別是什麼呢?容器技術從發展歷史看有chroot, control groups, rocket, docker等,docker因其自身架構不斷完善,逐漸成爲衆多容器技術中最流行的。

docker與虛擬機區別

docker作爲一種輕量級的虛擬化方式,其在運行應用上跟傳統的虛擬機相比具有如下顯著優勢:

  • docker容器很快,啓動和停止均可以在秒級實現,相比傳統的虛擬機需要數分鐘要快得多

  • docker對系統資源需求很少,一臺主機上可以同時運行數千個Docker容器

  • Docker通過類似Git設計理念的操作來方便用戶獲取、分發和更新鏡像,存儲複用,增量更新

  • Docker容器除了運行應用外,基本不消耗額外的系統資源,其應用獲得的是接近原生的性能,傳統虛擬機需要單獨分配內存、磁盤等資源

  • Docker通過Dockerfile支持靈活的自動化創建和部署機制,以提高工作效率並標準化流程

  • Docker方便遷移,將鏡像push到倉庫,可以通過pull鏡像在任何一臺機器上啓動docker

    總之,docker比虛擬機更加輕便、使用更加方便

docker與虛擬化

在計算機領域虛擬化技術一般指的是計算虛擬化,或者通常說的服務器虛擬化,維基百科中的定義如下“在計算機技術中,虛擬化是一種資源管理技術,是將計算機的各種實體資源,如服務器、網絡、內存等,予以抽取、轉換後抽象出來,打破實體結構間的不可切割的障礙,使用戶可以用比原本的組態更好的方式來應用這些資源”。Docker及其他容器技術都屬於軟件虛擬化中的操作系統虛擬化的範疇,操作系統虛擬化最大的優勢是不需要額外的supervisor支持,傳統操作系統虛擬化方式是在硬件層面實現虛擬化,需要有額外的虛擬機管理應用和虛擬機操作系統層,Docker容器實在操作系統層面上實現虛擬化,直接複用本地主機的操作系統,更加輕量級

發佈了28 篇原創文章 · 獲贊 11 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章