docker本質上是一個附加系統,準確來說是一個用於開發,交付和運行應用程式的開放平台;Docker可以使開發者能夠將應用程式與基礎架構分開,從而可以快速交付軟體;借助Docker也可以與管理應用程式相同的方式來管理基礎架構。
本文操作環境:ubuntu 18.04系統、Docker 20.10.11版、Dell G3電腦。
docker 是系統嗎?
Docker在本質上是一個附加系統。
Docker 是一個開源的應用程式容器引擎,基於 Go 語言 並遵循 Apache2.0 協定開源。
Docker 可以讓開發者打包他們的應用程式以及依賴套件到一個輕量級、可移植的容器中,然後發佈到任何流行的 Linux 機器上,也可以實現虛擬化。
容器是完全使用沙箱機制,彼此之間不會有任何介面(類似 iPhone 的 app),更重要的是容器效能開銷極低。
Docker 從 17.03 版本之後分為 CE(Community Edition: 社群版) 和 EE(Enterprise Edition: 企業版)。
Docker 的優點
Docker 是一個用於開發,交付和運行應用程式的開放平台。 Docker 可讓您將應用程式與基礎架構分開,從而快速交付軟體。借助 Docker,您可以與管理應用程式相同的方式來管理基礎架構。透過利用 Docker 的方法來快速交付,測試和部署程式碼,您可以大幅減少編寫程式碼和在生產環境中執行程式碼之間的延遲。
特徵
在docker的網站上提到了docker的典型場景:
Automating the packaging and deployment of applications(使應用的打包與部署自動化)
Creation of lightweight, private PAAS environments(創建輕量、私密的PAAS環境)
Automated testing and continuous integration/deployment(實現自動化測試和持續的整合/部署)
Deploying and scaling web apps, databases and backend services(部署與擴充webapp、資料庫和後台服務)
由於其基於LXC的輕量級虛擬化的特點,docker相比KVM之類最明顯的特點就是啟動快,資源佔用小。因此對於建構隔離的標準化的運作環境,輕量級的PaaS(如dokku), 建構自動化測試和持續整合環境,以及一切可以橫向擴展的應用(尤其是需要快速啟停來應對峰谷的web應用) 。
建構標準化的運行環境,現有的方案大多是在一個baseOS上運行一套puppet/chef,或者一個image文件,其缺點是前者需要base OS許多前提條件,後者幾乎不可以修改(因為copy on write 的文件格式在運行時rootfs是read only的)。而後者檔案體積大,環境管理和版本控製本身也是一個問題。
PaaS環境是不言而喻的,其設計之初和dotcloud的案例都是將其作為PaaS產品的環境基礎
因為其標準化建置方法(buildfile)和良好的REST API,自動化測試和持續整合/部署能夠很好的整合進來
因為LXC輕量級的特點,其啟動快,而且docker能夠只載入每個container變化的部分,這樣資源佔用小,能夠在單機環境下與KVM之類的虛擬化方案相比能夠更加快速和占用更少資源
推薦學習:《docker影片教學》
以上是docker 是系統嗎的詳細內容。更多資訊請關注PHP中文網其他相關文章!