docker是基於「LXC」作為引擎的。 docker是一個基於LXC的高階容器引擎,原始碼託管在Github上,基於go語言並遵從Apache2.0協定開源;使用docke可以實現更輕量級的虛擬化,方便快速部署。
本教學操作環境:linux5.9.8系統、docker-1.13.1版、Dell G3電腦。
Docker 是一個開源的應用程式容器引擎,讓開發者可以打包他們的應用程式以及依賴包到一個可移植的映像中,然後發佈到任何流行的 Linux或Windows作業系統的機器上,也可以實現虛擬化。容器是完全使用沙箱機制,彼此之間不會有任何介面。
Docker 是 PaaS 提供者 dotCloud 開源的一個基於 LXC 的高級容器引擎,原始碼託管在 Github 上, 基於go語言並遵從Apache2.0協定開源。
Docker自2013年以來非常火熱,無論是從github 上的代碼活躍度,還是Redhat在RHEL6.5中集成對Docker的支持, 就連 Google 的Compute Engine 也支持docker 在其之上運行。
一款開源軟體能否在商業上成功,很大程度上依賴三件事 - 成功的 user case(用例), 活躍的社群和一個好故事。 dotCloud 之家的 PaaS 產品建立在docker之上,長期維護且有大量的用戶,社群也十分活躍,接下來我們來看看docker的故事。
環境管理複雜- 從各種OS到各種中間件到各種app, 一款產品能夠成功作為開發者需要關心的東西太多,且難於管理,這個問題幾乎在所有現代IT相關產業都需要面對。
雲端運算時代的到來- AWS的成功, 引導開發者將應用程式轉移到cloud 上, 解決了硬體管理的問題,然而中間件相關的問題依然存在(所以openstack HEAT和AWS cloudformation 都著力解決這個問題)。開發者思路變化提供了可能性。
虛擬化手段的變化 - cloud 時代採用標配硬體來降低成本,採用虛擬化手段來滿足用戶按需使用的需求以及保證可用性和隔離性。然而無論是KVM還是Xen在docker 看來,都在浪費資源,因為用戶需要的是高效運行環境而非OS, GuestOS既浪費資源又難於管理, 更加輕量級的LXC更加靈活和快速
LXC的移動性- LXC在linux 2.6 的kernel 裡就已經存在了,但是其設計之初並非為雲端運算考慮的,缺少標準化的描述手段和容器的可遷移性,決定其建構出的環境難於遷移和標準化管理(相對於KVM之類image和snapshot的概念)。 docker 就在這個問題上做出實質的革新。這是docker最獨特的地方。
docker 會對伺服器端開發/部署帶來什麼改變?
實現更輕量級的虛擬化,方便快速部署
對於部署來說可以極大的減少部署的時間成本與人力成本
推薦學習:《docker影片教學》
以上是docker是基於什麼作為引擎的的詳細內容。更多資訊請關注PHP中文網其他相關文章!