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]