天天看點

GIS+=地理資訊+容器技術(8)——Docker1.10新特性介紹

原文位址:https://blog.docker.com/2016/02/docker-1-10/#rd?sukey=014c68f407f2d3e12c2ec2a54d23e762c1af46b131a8d003c2a7c62167a6bca8b5238d1738359179370eb369383b635b

翻譯:@dockerone

GIS+=地理資訊+容器技術(8)——Docker1.10新特性介紹

中原標準時間2月5日,在經過了數個月的努力以及4個RC版本之後,Docker終于釋出了1.10版本。據統計,本次版本有超過100項的更新與改進,涉及Engine、安全、網絡、日志等多方面。DockOne社群第一時間全文翻譯了官方新聞,内容如下(Rkt也釋出了1.0版本,詳情請關注明天微信):

我們懷着興奮之情向大家介紹Docker 1.10,其中滿載着大量各位朋友一直期待的全新功能特性。

現在我們已經能夠更輕松地利用Docker Compose定義并運作複雜的分布式應用。Compose所帶來的強大容器編排能力如今已經可用于網絡及卷(volume)的設定。在開發機器當中,各位可以将多個網絡層以及複雜的存儲配置添加到應用設定當中,進而保證其與生産環境下的設定完全相符。接下來,大家可以将同樣的配置從開發環境中提取出來,并用于持續內建、預演測試(staging)乃至貫穿整個生産流程中的應用運作。

與往常一樣,我們在此次新版本中添加了一系列安全更新。大家長久以來強烈要求的諸多功能特性如此也一一成為現實:用于隔離系統使用者的使用者命名空間機制、用于過濾系統調用的seccomp配置檔案以及一套用于限定Engine功能通路的授權插件系統。

另一大安全強化機制在于鏡像ID如今能夠展現對應鏡像之内的内容,其作用方式類似于Git送出中的送出内容表示。這意味着大家可以通過指定鏡像的ID確定自己正在運作的内容與預期切實相符。

網絡功能更上一層樓

我們曾在上套Docker Engine版本當中添加了一套新的網絡系統。其允許大家建立虛拟網絡并向其中添加容器,進而建立出最适合應用程式實際需要的網絡拓撲結構。除了在Compose中添加網絡支援能力外,我們還實作了以下幾項粉絲們一直盼望的新功能:

  • 在網絡環境内使用連結:連結仍然與以往一樣能夠在預設橋接網絡内使用,但大家原先無法在網絡中使用自己建立的連結。現在我們添加了對應的支援功能,意味着大家可以定義不同容器間的關系,并能夠在特定容器之内将某主機名設定為别名。 (例如–link db:production_postgres)
  • 全網容器别名:連結機制允許大家将某主機名以别名方式配置設定給特定容器,但大家現在也可以在完整的網絡環境内保證單一容器能夠通過多個主機名進行通路。
  • 内部網絡:将–internal标記傳遞至network create以限制網絡中的出入流量。
  • 自定義IP位址:在容器運作或者被添加到網絡當中時,大家現在可以為其配置設定一個自定義IP位址。
  • 域名解析DNS伺服器:主機名查找通過DNS伺服器而非/etc/hosts完成,進而進一步提升其可靠性與可擴充能力。
  • 在全部受支援Engine核心版本之上建構多主機網絡:多主機疊加驅動程式如今可在較早核心版本(3.10及以上版本)中正常起效。

Engine 1.10

除了新的安全與網絡功能,我們還為Engine添加了其它一系列新特性:

  • 内容可尋址鏡像ID:現在鏡像ID能夠展現對應鏡像之内的内容,其作用方式類似于Git送出中的送出内容表示。這意味着大家可以通過指定鏡像的ID確定自己正在運作的内容與預期切實相符。這項改進源自Docker 1.6版本中的鏡像摘要機制。
  • 事件流得到改進:docker events指令與事件API端點都已經迎來改進及簡化。各事件現在始終配合一種資源類型進行結構建構,而其執行指向該對應資源。另外,事件還加入了針對存儲分卷與網絡的操作選項。
  • push/pull性能與可靠性得到改進:各層如今以并發方式進行推送,意味着其推送速度得到顯著提高(約為原先的三倍)。另外,提取的速度與可靠性亦有一定程度提升——這主要利益于經過簡化的協定以及更出色的重試與回退機制。
  • 實時更新容器資源管理:在設定容器能夠使用的資源類型時(例如記憶體使用量),大家過去必須重新啟動容器以實作相關變更。現在我們已經能夠通過新的docker update指令在運作過程中對資源管理進行更新。
  • 守護程式配置檔案:現在我們能夠利用單一檔案内容更改與部分重載的方式配置守護程式選項,而不必再對其進行重新開機——舉例來說,大家可以在無需重新開機的前提下實作新守護程式标簽設定與調試日志記錄功能啟用。
  • 臨時檔案系統:現在我們已經能夠輕松通過為docker run添加–tmpfs标記以建立臨時性檔案系統。這項能力非常實用,特别是在容器内的某些軟體需要能夠寫入磁盤上的特定位置、而目前root檔案系統卻處于隻讀狀态的情況下。
  • 磁盤I/O限定:多種磁盤I/O限定設定選項已經添加完成,具體包括docker run:–device-read-bps、–device-write-bps、–device-read-iops、–device-write-iops以及–blkio-weight-device.
  • Splunk日志記錄驅動程式:用于直接将容器日志發送至Splunk日志記錄服務。
  • 在重新開機守護程式時以正确順序啟動鍊入容器:這不是什麼大事,但隻要一經嘗試,大家就會發現其實作難度其實遠超想象。如果我們重新開機一項包含有鍊入容器的守護程式,那麼其有時候會由于鍊入容器尚未開始運作而出現啟動失敗。Engine現在将嘗試以正确順序啟動這些容器,進而保證整個流程順利完成。

此次新版本中還棄用了一些固有功能,包括停止對Fedora 21以及Ubuntu 15.04的支援能力,是以請一定提前檢查以确認這些調整是否會對您造成影響。另外,如果大家編寫了一套存儲分卷插件,也請檢查此次經過變更的分卷插件API以了解相關變動。

這裡要感謝參與這一新版本開發的技術人員——特别是Qiang Huang、Denis Gladkikh、Dima Stopel以及Liron Levin。

另外,嘗試将Docker方案引入開發流程的最簡便方式就是安裝Docker Toolbox——大家可以點選此處進行擷取。

Swarm 1.1

Docker Swarm是Docker的一套原生叢集方案。其能夠顯著降低Engine叢集的管理與部署難度。Swarm同時也扮演着Docker通用控制台(Docker Universal Control Plane,這是一款用于實作Docker應用程式及叢集部署與管理的内部工具)叢集化與排程基礎的角色。

GIS+=地理資訊+容器技術(8)——Docker1.10新特性介紹

早在去年11月,我們就已經公布了Swarm的首個生産就緒版本,即1.0版本。此次釋出的新版本包含一系列增量式改進,特别是添加了多項大家期待已久的功能特性:

  • 節點故障情況下的容器重新排程:一旦某一節點發生故障,Swarm現在能夠選擇性地嘗試将負載排程至正常運作節點當中,進而保證其繼續運作。這還是一項實驗性功能,是以目前其實際效果還不夠完美,但能夠做出嘗試仍然令人頗感欣慰。
  • 更出色的節點管理能力:如果Swarm無法連接配接至某節點,其現在将進行重試而非直接放棄。另外,其還會在docker info當中顯示相關狀态與各類錯誤資訊,幫助管理人員輕松完成調試。

同時敬請關注2月29号周一召開的Swarm Week系列活動!

如果大家還隻是Swarm新手或者希望了解更多深層知識,那麼Swarm Week将成為各位将相關資訊一網打盡的絕佳平台。我們将每天設定一個主題并展開深入探讨。

是以請牢牢鎖定Docker部落格,共同迎接#SwarmWeek于29号周一全面來臨!

Machine 0.6

Machine可謂Docker Toolbox當中的核心組成部分,而此次Machine 0.6版本的主要訴求則在于盡可能提高其與VirtualBox之間的相容能力以及在Windows平台上的運作可靠性。相信這會顯著提高Toolbox的使用體驗。

GIS+=地理資訊+容器技術(8)——Docker1.10新特性介紹

此次還專門針對Machine進階使用者推出了一系列新功能:

  • 不必再輸入“default”:現在即使我們不指定名稱,各指令将直接作用于“default(預設)”虛拟機對象。
  • 新的配置指令:當主機發生故障或者配置出現偏差時,這條指令能夠有效對相關主機進行重新配置。

Registry 2.3

在Registry 2.3當中,我們在性能表現與安全性層面做出了諸多改進。其目前支援新的manifest格式,同時使得各層能夠在不同鏡像之間實作共享,另外Registry當中的現有各層亦同時迎來性能提升。

GIS+=地理資訊+容器技術(8)——Docker1.10新特性介紹