天天看點

《Docker容器:利用Kubernetes、Flannel、Cockpit和Atomic建構和部署》——1.3 探究容器

本節書摘來自異步社群《docker容器:利用kubernetes、flannel、cockpit和atomic建構和部署》一書中的第1章,第1.3節,作者: 【美】christopher negus(克裡斯托弗•尼格斯)著,更多章節内容可以通路雲栖社群“異步社群”公衆号檢視

由于圍繞docker和容器的開發節奏很快,現在任何書籍所能做的最好的就是将你帶到一條正确的路上。本書中,這就意味着一開始會給出一套靠譜示例來說明目前docker和精選的一組支援工具是如何工作的。之後,這條大路就會展示位于地平線上的新特性和新工具。

無論你是想使用和管理容器,還是擔負容器開發的任務,本書會讓你以所有人都需要的一些事情起步,包括以下幾項。

搭建docker:許多完整的linux系統和一些面向容器的特定linux系統上都可以使用docker。是以,本書開始部分的說明會幫你選擇一個或多個這樣的系統并展示如何啟動docker服務。

搭建docker registry:docker把容器鏡像儲存在registry中并使鏡像可以被拉取(下載下傳)到運作docker的系統中。是以,你可以學習如何建立自己的私有docker registry并用它儲存自己的容器鏡像。

如果你想要使用和管理容器,我會為你介紹不同的方法來使用:

普通的單個容器;

一組容器(使用kubernetes和其他工具來管理它們)。

無論你是建立容器化應用還是隻運作容器化應用,它都有助于了解将底層作業系統特性提供給容器的方法。你應該了解的用來支援容器的作業系統的輔助特性包括以下幾個。

主控端權限:設計上限制了容器可以操縱主控端的範圍。開放主控端權限能讓容器直接通路主控端系統的特性,如主控端的程序表、裝置、特定的cpu以及ipc命名空間。本書稍後會用fedora atomic host示範那些專為通路和修改主控端系統而設計的容器(被稱為超級特權容器)。

存儲:你可以在docker容器中使用挂載來連接配接主控端的存儲空間,而不是将資料儲存在容器中。

網絡:有特殊的規則和選項來從容器内管理主控端的網絡接口。

作為軟體開發人員,容器既限制了你也讓你得以自由。你有能力確定你的應用程式的所有檔案都以一種立即可以運作的形式與容器打包在一起。但新的挑戰浮現出來,這些挑戰要求你重新思考應對下列事項的開發方式。

高效地處理容器層;

通過測試、開發和生産階段指引軟體增強;

在多個容器間劃分服務;

在運作時環境中部署、啟動和停止容器;

處理你的應用程式所需要的主控端系統的輔助服務。

docker有許多強大的特性并且目前可以很好地建構和運作單個容器。但docker周圍的世界并非停滞不前。甚至此時,數以百計的人們每天都在努力擴充用docker所能完成的工作。

相當數量的工具即将出現,用以支援企業級容器的開發和部署。同樣地,人們在不斷地創造聰明的容器,并将這些容器以及用于建構這些容器的dockerfile提供給想要使用和擴充它們的人。為了幫你采取超出本書範圍的下一步措施,最後兩章描述了以下内容。

更多容器化工具:如此衆多的工具被開發出來使用docker容器,以至于很難搞清全部這些工具。這一章描述了那些你将很快就能用于docker容器的新興工具。

容器鏡像的示例:為了說明人們使用docker的創造性方式,我用了整整一章來展示那些已經開放出來讓你嘗試的很酷的容器。

緊跟着最後一章專門用來幫你評估哪些現存的和即将推出的工具在你力圖使用容器擴充自己的道路時對你最為有用。它梳理了當今這些工具能夠幫你做什麼,以及它們正如何發展以便明天為你服務。

繼續閱讀