Docker
用於部署容器化應用程式的開放原始碼軟體 / 維基百科,自由的 encyclopedia
Docker是一個開放原始碼的開放平臺軟體,用於開發應用、交付(shipping)應用和執行應用。Docker允許使用者將基礎設施(Infrastructure)中的應用單獨分割出來,形成更小的顆粒(容器),從而提高交付軟體的速度。[2]
Quick Facts 原作者, 開發者 ...
原作者 | Solomon Hykes |
---|---|
開發者 | Docker, Inc. |
首次釋出 | 2013年3月13日 (2013-03-13) |
目前版本 |
|
原始碼庫 | |
程式語言 | Go |
作業系統 | Linux、Windows、macOS |
平台 | x86-64、ARM、s390x、ppc64le |
類型 | 作業系統層虛擬化 |
授權條款 | 可執行檔:免費增值軟體即服務 原始碼:Apache授權條款 2.0 |
網站 | www |
Close
Docker容器與虛擬機器類似,但二者在原理上不同。容器是將作業系統層虛擬化,虛擬機器則是虛擬化硬體,因此容器更具有可攜式性、更能高效地利用伺服器。 容器更多的用於表示軟體的一個標準化單元。由於容器的標準化,因此它可以無視基礎設施(Infrastructure)的差異,部署到任何一個地方。另外,Docker也為容器提供更強的業界的隔離相容。[3]
Docker 利用Linux核心中的資源分離機制,例如cgroups,以及Linux核心命名空間(英語:Linux namespaces)(namespaces),來建立獨立的容器(containers)。這可以在單一Linux實體下運作,避免啟動一個虛擬機器造成的額外負擔[4]。Linux核心對命名空間的支援完全隔離了工作環境中應用程式的視野,包括行程樹、網路、使用者ID與掛載檔案系統,而核心的cgroup提供資源隔離,包括CPU、記憶體、block I/O與網路。從0.9版本起,Dockers在使用抽象虛擬是經由libvirt的LXC與systemd - nspawn提供介面的基礎上,開始包括libcontainer函式庫做為以自己的方式開始直接使用由Linux核心提供的虛擬化的設施。[4]