Docker的工具實踐及root概念和Docker容器安全性設置
1. 使用案例 2. Docker解決的問題 3. Docker未來發展 4. Docker Hub 服務 5. 技術局限 6. Docker環境安全 7. 容器部署安全
使用案例
Docker是一個命令行工具,它提供了中央“docker”執行過程中所需的所有工具。這使得Docker的操作非常簡單。一些例子可以檢查運行中的容器的狀態:
或檢查可用的鏡像及其版本的列表:
另一個例子是顯示一個鏡像的歷史:
上面的命令顯示了命令行界面操作的方便快捷。只需要指定鏡像ID的前幾個字符就可以。可以看到只需要“d95”就能顯示d95238078ab0鏡像的所有歷史。
人們可能會注意到該鏡像非常小。這是因為Docker從父鏡像建立增量鏡像,只存儲每個容器的更改。因此,如果有一個300MB的父鏡像,如果在容器中安裝了50MB的額外應用或服務,該容器和生成鏡像可能只有50MB。
可以用Dockerfiles自動化Docker容器的創建過程。Dockerfiles是含有單個容器性能規范的文件。例如,可以創建一個Dockerfiles來建立一個Ubuntu容器,在新容器內運行一些命令、安裝軟件或執行其他任務,然后啟動容器。
容器網絡
Docker早期版本中的網絡基于主機橋接,但是Docker 1.0包含了一種新形式的網絡,允許容器直接連接到主機以太網接口。默認情況下,一個容器有一個回路以及一個連接到默認內部橋接的接口,但是如果需要的話也可以配制成直接訪問。通常,直接訪問比橋接的速度更快。
然而,橋接方法在許多情況下是非常有用的。橋接是通過主機自動創建一個內部網絡適配器并為其分配一個主機本身尚未使用的子網。然后,當新的容器連接到這座橋,它們的地址進行自動分配。容器啟動時可以將其連接到主機接口或端口,因此運行Apache的容器可能啟動并連接到主機上的TCP端口8080(或隨機端口)。通過使用腳本和管理控制,可以在任何地方啟動Docker,連接端口并將其傳達到需要使用該服務的應用或服務堆棧的其他部分。
在Hyper-V服務器上Docker主機備份方法
要在Hyper-V服務器上創建Docker主機,需要下載并且安裝OpenSSH以及Windows版本的Docker Machine。還應該將OpenSSH二進制文件添加到Hyper-V服務器路徑以便Docker Machine可以找到它們。
一旦所需的組件就緒,創建Docker主機如同運行一條命令行一樣輕而易舉。打開命令提示符窗口,定位到包含Docker Machine的文件夾,然后輸入可執行文件名稱(Docker-machine_windows-amd64.exe),其后輸入-d開關、驅動程序的名稱(在本例中是Hyper-V)以及正在創建的虛擬機(VM)的名稱。
例如,該命令可能如下所示:
Docker-machine_windows-amd64.exe -d hyper-v Docker,當運行這個命令的時候,Docker Machine完成幾個不同的任務。其中一些更重要的任務(從備份的角度來看)包括:
使用命令行中指定的名稱創建虛擬硬盤(virtual hard disk,VHD);
下載名為Boot2Docker.ISO的DVD映像;
創建虛擬機;
把Boot2Docker.ISO 文件與新創建的VM關聯,作為虛擬DVD光驅;
把VHD與VM關聯;
啟動VM;
向VM分配IP地址和端口號。
2. Docker解決的問題
云計算、大數據,移動技術的快速發展,加之企業業務需求的不斷變化,導致企業架構要隨時更改以適合業務需求,跟上技術更新的步伐。毫無疑問,這些重擔都將壓在企業開發人員身上;團隊之間如何高效協調,快速交付產品,快速部署應用,以及滿足企業業務需求,是開發人員亟需解決的問題。Docker技術恰好可以幫助開發人員解決這些問題。
為了解決開發人員和運維人員之間的協作關系,加快應用交付速度,越來越多的企業引入了DevOps這一概念。但是,傳統的開發過程中,開發、測試、運維是三個獨立運作的團隊,團隊之間溝通不暢,開發運維之間沖突時有發生,導致協作效率低下,產品交付延遲, 影響了企業的業務運行。Docker技術將應用以集裝箱的方式打包交付,使應用在不同的團隊中共享,通過鏡像的方式應用可以部署于任何環境中。這樣避免了各團隊之間的協作問題的出現,成為企業實現DevOps目標的重要工具。以容器方式交付的Docker技術支持不斷地開發迭代,大大提升了產品開發和交付速度。
此外,與通過Hypervisor把底層設備虛擬化的虛擬機不同,Docker直接移植于Linux內核之上,通過運行Linux進程將底層設備虛擬隔離,這樣系統性能的損耗也要比虛擬機低的多,幾乎可以忽略。同時,Docker應用容器的啟停非常高效,可以支持大規模的分布系統的水平擴展,真正給企業開發帶來福音。
正如中國惠普云計算集成云技術首席專家劉艷凱所說的那樣:“任何一項技術的發展和它受到的追捧,都是因為它能夠解決困擾人們的問題,”Docker正是這樣的一種技術。
3. Docker未來發展
任何一項新技術的出現,都需要一個發展過程,比如云計算為企業所接受用了將近五年左右時間,OpenStack技術也經歷了兩、三年才受到人們的認可。因此,雖然Docker技術發展很快,但技術還不夠成熟,對存儲的靈活的支持、網絡的開銷和兼容性方面還存在限制,這是Docker沒有被企業大范圍使用的一個主要原因。另外一個原因是企業文化是否與DevOps運動一致,只有企業支持DevOps,才能更大地發揮Docker的價值。最后一個原因就是安全性問題,Docker對于Linux這一層的安全的隔離還有待改進,才能進一步得到企業的認可?;萜談⑵G凱認為,這也是Docker需要在下一步中改進的一方面。
Docker價值的最大體于對企業DevOps的支持,對原生云應用大規模水平擴展的支持。在惠普Helion云戰略中包括了對DevOps服務和原生云應用的支持,而這一戰略的具體落地,與Docker技術有著緊密的聯系。因此,惠普團隊一直積極地參與OpenStack社區中和Docker項目相關的開發活動中,努力改進Docker技術中存在的不足。同時,惠普產品中也集成了Docker,例如,惠普開發平臺產品集成了Docker,使用Docker作為應用的容器;以及惠普最新發布的CloudSystem 9.0也增加對Docker的支持,用戶可以像使用其它的虛擬化資源一樣,選擇Docker作為應用的承載容器。劉艷凱認為,惠普非常認可Docker給用戶帶來的一些價值,那也希望通過自己努力,使更多的用戶使用到Docker這樣的先進的技術。
4. Docker Hub 服務
雙方在開源容器技術以及發展方向上共同努力,并提供本地化的 Docker 服務。Docker 公司選擇阿里云平臺作為其DockerHub 在中國運營的基礎服務。阿里云也獲得 DockerEngine 商用版以及DockerDataCenter 運營權,并為 Docker 客戶提供企業級支持和咨詢服務。同時,阿里云將成為 Docker 官方支持的云服務提供商。
阿里云總裁胡曉明表示,通過和 Docker 的戰略合作,阿里云將更好地為企業級客戶提供完善的云服務,使能客戶,并實現時代轉型。
5. 技術局限
網絡限制:容器網絡(Docker Network )可以方便地在同一主機下對容器進行網絡連接。加上一些其他的工作,就可以跨主機使用疊加網絡功能。然而,也就到此為止了。網絡配置操作是受限的,而且到docker 0.7為止可以說這些手段都是人工的。盡管容器腳本化可以規?;?,但是必須給網絡定義增加預分配實例,每次提供容器時還需要額外步驟,這容易引起錯誤。
庫控制受限:庫已經成為任何容器會話的中心議題。公共庫是最有價值的,因為他貢獻了大量的預置容器,節省了許多的配置時間。然而,在沙盒里使用它是有風險的。在不知道誰以及如何創建鏡像的情況下,可能會存在任意數量的有意或無意的穩定性和安全性風險。對于企業來說,有必要建立和維護一個私有庫,這個庫的建立挑戰不大,但管理是個問題。Docker為大型庫的鏡像管理提供了一個有限的元數據模型,確保未來實例如預期的能力受限,也沒有疊加功能。
沒有清晰的審計跟蹤:提供容器是很簡單的,但知道提供容器的時間、原因、方式以及提供方卻不容易。因此,在提供之后,用戶并不掌握多少出于審計目的的歷史。
運行實例的低可見性:如果沒有經過深思熟慮的行動,實例提供后很難接觸到運行容器的對象,也很難知道哪些應該出那里,哪些不應該出那里。
6. Docker環境安全
Docker的勢頭在過去的12個月里十分火熱,很多人表示很少見如此能夠吸引行業興趣的新興技術。然而,當興奮轉化為實際部署時,企業需要注意Docker的安全性。
了解Docker的人都知道,Docker利用容器將資源進行有效隔離。因此容器相當于與Linux OS和hypervisor有著幾乎相同的安全運行管理和配置管理級別。但當Docker涉及到安全運營與管理,以及具有保密性、完整性和可用性的通用控件的支持時,Docker可能會讓人失望。
當Docker運行在云提供商平臺上時,Docker安全性變得更加復雜。需要知道云提供商正在做什么,或許用戶正在于別人共享一臺機器。
Docker雖然容器沒有內置的安全因素,而且像Docker這樣的新興技術很難有比較全面的安全措施,但這并不意味著以后也不會出現。
7. 容器部署安全
也有專家將Docker安全問題的實質定位于配置安全,認為Docker的問題是很難配置一個安全的容器。雖然Docker的開發人員通過創建非常小的容器來降低攻擊面,但問題在于大型企業內部在生產環境中運行Docker容器的員工需要有更多的可見性和可控性。
企業在部署數千或數萬臺Docker容器時,能夠確保這些Docker容器都遵守企業安全策略進行配置是至關重要的事情。
Docker為解決這個問題,就需要增加Docker容器部署的實時可見性,同時實施企業制定的安全策略。也有一些廠商為此推出解決方案,給運營商提供了實時可見性并幫助他們執行容器級別的虛擬基礎設施的安全策略。
編輯:黃飛
-
Linux
+關注
關注
87文章
11232瀏覽量
208949 -
ip地址
+關注
關注
0文章
295瀏覽量
17010 -
容器
+關注
關注
0文章
494瀏覽量
22046 -
虛擬機
+關注
關注
1文章
908瀏覽量
28109 -
Docker
+關注
關注
0文章
455瀏覽量
11819
原文標題:Docker的使用案例以及未來發展、Docker Hub 服務、環境安全、容器部署安全
文章出處:【微信號:magedu-Linux,微信公眾號:馬哥Linux運維】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論