首頁  >  文章  >  運維  >  什麼是docker容器技術

什麼是docker容器技術

WBOY
WBOY原創
2022-08-16 18:02:228416瀏覽

docker容器技術指的是Docker是一個由GO語言寫的程式運行的容器,實現了一種應用程式層級的隔離;docker是為開發者和系統管理員設計的,用來發布和運行分散式應用程式的一個開放性平台。

什麼是docker容器技術

本教學操作環境:linux7.3系統、docker19.03版、Dell G3電腦。

什麼是docker容器技術

docker容器技術指Docker是一個由GO語言寫的程式運行的「容器」(Linux containers, LXCs)Docker則實作了一種應用程式級別的隔離,它改變我們基本的開發、操作單元,由直接操作虛擬主機(VM),轉換到操作程序運行的「容器」上來。

Docker是為開發者和系統管理員設計的,用來發布和運行分散式應用程式的開放性平台。由兩部分組成:Docker Engine: 一個便攜式、輕量級的運作環境和套件管理器。

(註* 單OS vs 單線程)Docker Hub: 為建立自動化工作流程和分享應用程式所建立的雲端服務組成。 (註* 雲端映像/套件管理vs npm套件管理,是跟npm特別像?)

從2013年3月20日,第一個版本的Docker正式發佈到2014年6月Docker 1.0正式發布,經歷了15個月。雖然發展歷程很短,但Docker正在有越來越流行的趨勢。其實Container技術並非Docker的創新,HeroKu, NodeJitsu 等雲端服務商都採用了類似這種輕量級的虛擬化技術,但Docker是第一個將這這種Container技術大規模開源並被社群廣泛接受的。

容器技術擴充功能

 在電腦的世界中,容器擁有一段漫長且傳奇的歷史。容器與管理程式虛擬化hypervisor virtualization HV )有所不同,管理程式虛擬化透過中間層將一台或多台獨立的機器虛擬運作與實體硬體之上,而容器則是直接運作在作業系統核心之上的使用者空間。因此,容器虛擬化也被稱為“作業系統級虛擬化”,容器技術可以讓多個獨立的用戶空間運行在同一台宿主機器上。

由於「客居」於作業系統,容器只能運行與底層宿主機相同或相似的作業系統,這看起來並不是非常靈活。例如:可以在 Ubuntu 服務中執行 Redhat Enterprise Linux ,但無法再Ubuntu 伺服器上執行 Microsoft Windows 。

相對於徹底隔離的管理程式虛擬化,容器被認為是不安全的。而反對這一觀點的人則認為,由於虛擬容器所虛擬的是一個完整的作業系統,這無疑增大了攻擊範圍,而且還要考慮管理程式層潛在的暴露風險。

儘管有許多局限性,容器還是被廣泛部署於各種各樣的應用場合。在超大規模的多租戶服務部署、輕量級沙盒以及對安全要求不太高的隔離環境中,容器技術非常流行。最常見的一個例子就是「權限隔離監牢」( chroot jail ),它會建立一個隔離的目錄環境來運行進程。如果權限隔離監牢正在運行的程序被入侵者攻破,入侵者便會發現自己“身陷囹圄”,因為權限不足被困在容器所創建的目錄中,無法對宿主機進一步破壞。

最新的容器技術引進了OpenVZ 、 Solaris Zones 以及 Linux 容器( LXC )。使用這些新技術,容器不在只是一個 單純的運作環境。在自己的權限類別內,容器更像是完整的宿主機。對Docker 來說,它得益於現代Linux 特性,如控制組( control group )、命名空間(namespace )技術,容器和宿主機之間的隔離更加徹底,容器有獨立的網路和儲存棧,還擁有自己的資源管理能力,使得同一台宿主機中的多個容器可以友善的共存。

容器被認為是精實技術,因為容器所需的開銷有限。和傳統虛擬化以及半虛擬化相比,容器不需要模擬層( emulation layer )和管理層( hypervisor layer ),而是使用作業系統的系統呼叫介面。這降低了運行單一容器所需的開銷,也使得宿主機中可以運行更多的容器。

儘管有著光輝的歷史,容器仍未得到廣泛的認可。一個很重要的原因就是容器技術的複雜性:容器本身比較複雜,不容易安裝,管理和自動化也很困難。而Docker 就是為了改變這一切而生的。

推薦學習:《docker影片教學

以上是什麼是docker容器技術的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn