Docker 1.10.0 版本震撼發(fā)布
2016-02-11 16:45:10 來源: mengyidan1988 評論:0 點擊:
Docker 粉們,是否還記得上一個 Docker 大版本的發(fā)布是什么時候?你的記憶是否已經(jīng)模糊? 答案是: 10 月 14 號 在中國春節(jié)即將到來之際,Docker 官方發(fā)布了跨時代的 Docker 1 10 0 版本,著實為猴年的到來獻上了一份大禮。 如果說 Docker 1 9 0 的 overlay 網(wǎng)絡(luò)意味著 Docker 在集群能力方面的質(zhì)的飛躍,那么這次發(fā)布的 Docker 1 10
Docker 粉們,是否還記得上一個 Docker 大版本的發(fā)布是什么時候?你的記憶是否已經(jīng)模糊?
答案是: 10 月 14 號
在中國春節(jié)即將到來之際,Docker 官方發(fā)布了跨時代的 Docker 1.10.0 版本,著實為猴年的到來獻上了一份大禮。
如果說 Docker 1.9.0 的 overlay 網(wǎng)絡(luò)意味著 Docker 在集群能力方面的質(zhì)的飛躍,那么這次發(fā)布的 Docker 1.10.0 更是在多個方面實現(xiàn)重大突破。
總體而言,我認為這次新發(fā)布的 Docker 1.10.0 主要有以下這幾方面意義非凡的變化和看點:
1.Docker Engine 支持配置熱更新,容器與 Docker Daemon 的耦合性大大降低
2.Docker API 的完善程度穩(wěn)步上升,容器隔離維度更細致、更全面
3.Docker 安全劃時代地支持了 User Namespace 與 seccomp,安全程度直逼虛擬機
4.鏡像格式首推「內(nèi)容尋址方式」,可以做到 Docker 鏡像的全球唯一性,鏡像的安全與存儲都有大的改觀
5.網(wǎng)絡(luò)能力,無論單機,還是跨主機,功能逐漸完善,成熟度穩(wěn)步提升,發(fā)展之迅速不得不令人佩服
6.稍顯惋惜的是,傳統(tǒng)的容器管理工具 LXC 即將退出 Docker 的舞臺,伴隨 Docker 接近三年的時間,終于被更完善的容器管理方案取代,同時 Docker 的飛速發(fā)展以及追求卓越也一覽無余
看完 Docker 1.10.0 的主要變化,我們來看一下這一版本更為細節(jié)的變化,相信 Docker Engine、安全、Distribution、網(wǎng)絡(luò)、日志、存儲卷 Volume 等多方面,總有一款適合您。詳情請見下文:
1. Docker Engine(Runtime)
2. 安全
3. Distribution
4. 網(wǎng)絡(luò)
在docker inspect命令的返回結(jié)果中添加 network id
5. 日志
6. 存儲卷 Volumes
7. 鏡像構(gòu)建器(builder)
8. 客戶端
9. MISC
10. 遺棄
備注:本文來自DaoCloud供稿,獨家授權(quán)發(fā)布,作者孫宏亮,DaoCloud技術(shù)合伙人,主要負責DaoCloud企業(yè)級容器云平臺的研發(fā)。目前已出版《Docker 源碼分析》一書,也是國內(nèi)第一批研究及實踐Docker的工程師,同時也是國內(nèi)社區(qū)極具影響力的Docker布道者。
答案是: 10 月 14 號
在中國春節(jié)即將到來之際,Docker 官方發(fā)布了跨時代的 Docker 1.10.0 版本,著實為猴年的到來獻上了一份大禮。
如果說 Docker 1.9.0 的 overlay 網(wǎng)絡(luò)意味著 Docker 在集群能力方面的質(zhì)的飛躍,那么這次發(fā)布的 Docker 1.10.0 更是在多個方面實現(xiàn)重大突破。
總體而言,我認為這次新發(fā)布的 Docker 1.10.0 主要有以下這幾方面意義非凡的變化和看點:
1.Docker Engine 支持配置熱更新,容器與 Docker Daemon 的耦合性大大降低
2.Docker API 的完善程度穩(wěn)步上升,容器隔離維度更細致、更全面
3.Docker 安全劃時代地支持了 User Namespace 與 seccomp,安全程度直逼虛擬機
4.鏡像格式首推「內(nèi)容尋址方式」,可以做到 Docker 鏡像的全球唯一性,鏡像的安全與存儲都有大的改觀
5.網(wǎng)絡(luò)能力,無論單機,還是跨主機,功能逐漸完善,成熟度穩(wěn)步提升,發(fā)展之迅速不得不令人佩服
6.稍顯惋惜的是,傳統(tǒng)的容器管理工具 LXC 即將退出 Docker 的舞臺,伴隨 Docker 接近三年的時間,終于被更完善的容器管理方案取代,同時 Docker 的飛速發(fā)展以及追求卓越也一覽無余
看完 Docker 1.10.0 的主要變化,我們來看一下這一版本更為細節(jié)的變化,相信 Docker Engine、安全、Distribution、網(wǎng)絡(luò)、日志、存儲卷 Volume 等多方面,總有一款適合您。詳情請見下文:
1. Docker Engine(Runtime)
- 開發(fā)了新命令docker update,允許用戶更新運行中容器的資源限制(對于資源的重分配意義很大,后期可以考慮集成)
- 為docker run命令添加 flag 參數(shù)–tmpfs,用于為容器掛載一個內(nèi)存文件系統(tǒng),便于文件的快速讀寫
- 為docker images命令添加 flag 參數(shù)–format
- 允許用戶在文件中配置 Docker Daemon 的運行參數(shù),并通過 SIGHUP 信號對其進行熱加載,換言之,Docker 開始支持動態(tài)加載配置參數(shù)
- 更新docker events命令的內(nèi)容輸出,使其包含更多的元數(shù)據(jù)以及事件類型;但是,需要注意的是,此改動完全兼容 Docker 的 API,但是在 Docker CLI 中仍未支持
- 為docker run命令添加 flag 參數(shù)–blkio-weight-device
- 為docker run命令添加 flag 參數(shù)–device-read-bps和–device-write-bps,用于磁盤 I/O 的讀寫 BPS
- 為docker run命令添加 flag 參數(shù)–device-read-iops和–device-write-iops,用于磁盤 I/O 的 iops
- 為docker run命令添加 flag 參數(shù)–oom-score-adj,用于容器進程發(fā)生 oom 現(xiàn)象時,如何選擇 kill 進程的評分依據(jù)
- 為命令run、attach、start以及exec添加 flag 參數(shù)–detach-keys,以此來覆蓋從容器退出的的默認鍵盤鍵,比如使用 Docker 客戶端自定義的 ctrl+a 來作為這些命令的 ESC 鍵
- 為docker run、docker create以及docker build命令添加–shm-size,用于動態(tài)內(nèi)存文件系統(tǒng)的大?。?dev/shm 等同于 tmpfs)
- 豐富docker info命令的輸出內(nèi)容,為其添加運行容器的數(shù)目,停止容器的數(shù)目以及掛起容器的數(shù)目
- 豐富docker info命令的輸出內(nèi)容,為其添加操作系統(tǒng)類型以及機器結(jié)構(gòu)
- 為docker daemon命令添加 flag 參數(shù)–cgroup-parent,從而為所有容器設(shè)置父 cgroup,即掛載于制定的 cgroup 路徑下
- 為docker cp命令添加 flag 參數(shù)-L,使得cp命令不是僅僅拷貝符號鏈接,而是拷貝符號鏈接真實指向的內(nèi)容
- 新增過濾規(guī)則status=dead,使命令docker ps的輸出更符合用戶需求
- 更改docker run命令的返回碼(exit code),從而區(qū)分在命令返回的原因究竟是 Docker Engine 的錯誤,還是容器內(nèi)部應用自身的錯誤
- 擴展docker events命令中添加–since和–util參數(shù)后的內(nèi)容輸出,使其支持時區(qū)以及納秒
- 為docker stats命令添加 flag 參數(shù)-a/–all,用于顯示運行中容器以及停止容器的資源使用
- 將默認的 cgroup-driver 設(shè)置為cgroupfs
- 當使用docker build -t命令為某一鏡像設(shè)置標簽時,Docker Daemon 觸發(fā)一個 tag 事件;換言之,Docker Daemon 新支持一種 tag 事件
- 重新啟動 Docker Daemon 時,盡最大的努力來合理安排 link 容器的啟動順序
- 允許docker build命令為鏡像設(shè)置多個標簽(tag)
- 對任意 url 請求添加 OPTIONS 請求,而不是修改跨域存在的問題
- 修復docker build命令的 flag 參數(shù)–quiet,使其真正意義上實現(xiàn) quiet,即不輸出構(gòu)建過程的內(nèi)容
- 修復命令docker images –filter dangling=false,現(xiàn)在真正意義上顯示的是所有的 non-dangling 鏡像
- 修復命令docker volumes ls –filter dangling=false,現(xiàn)在真正意義上顯示的是所有的 non-dangling 的存儲卷
- 修復重啟容器時因為容器內(nèi)部進程長時間處理 SIGTERM 信號未果兒存在的資源競爭 BUG
- Docker Daemon 中加入了 IBM 公司的的共享文件系統(tǒng) GPFS
- 修復 Bug,使得 volume driver 不允許被容器化
- 刪除容器過程中,不刪除有命名的掛載點
- 修復阻止容器啟動的某些不知名 Bug
- 禁止在重啟過程中對容器執(zhí)行docker exec操作
- devicemapper 方面,當 Docker Daemon 重啟過程中–storage-opt dm.basesize參數(shù)的增長會導致基礎(chǔ)設(shè)備存儲空間的增長
2. 安全
- 為 Docker Daemon 命令添加 flag 參數(shù)–userns-remap,用以支持 Linux Namespace 中的用戶命名空間(User Namespace),之前 Docker 對于用戶命名空間的支持僅僅存在于 Docker 試驗版
- 在docker run命令的 flag 參數(shù)–security-opt中,添加對自定義 seccomp 文檔的支持,主要用戶對容器應用在系統(tǒng)調(diào)用方面實現(xiàn)沙箱化
- 為 Docker 添加默認的 seccomp 文檔,在容器的系統(tǒng)調(diào)用方案實現(xiàn)更為細粒度的隔離
- 為docker daemon命令添加 flag 參數(shù)–authorization-plugin,用以支持自定義的訪問控制列表(ACL)
- 當用戶使用 BTRFS 時,允許用戶在容器中運行 SELinux
3. Distribution
- 為 AuthConfig 數(shù)據(jù)結(jié)構(gòu)添加一個名為registryToken的屬性。該 Token 屬性允許 API 客戶端從一個鏡像倉庫中獲取用戶的認證 token,然后將 token 直接發(fā)給遠程 API
- 對鏡像和鏡像層實現(xiàn)內(nèi)容尋址的存儲方式。內(nèi)容尋址指的是,通過鏡像層的內(nèi)容來唯一的決定一個鏡像的 ID,從而保證鏡像的全局唯一性。需要注意的是:當 Docker 第一次運行的時候,會有一個對原有鏡像進行格式轉(zhuǎn)換的過程。此過程很可能會占用很長時間,主要取決于當前 Docker Daemon 所管理鏡像以及容器的數(shù)目大小。從此,鏡像中不再有parent image的概念,而是指向一系列的鏡像層引用。同時docker load/docker save的壓縮包現(xiàn)在會包含內(nèi)容尋址鏡像的配置文件
- 支持新的 menifest 格式(schema2)
- 對鏡像下載和鏡像上傳做了眾多改善,比如:性能的提高,下載失敗時的重試機制,客戶端失聯(lián)的取消操作等
- 對鏡像倉庫 v1 協(xié)議的回調(diào)限制
- 新版的 Notary 支持,其中包含了客戶端的 pkcs11。P.S. notary 是 Docker 一款官方推出的在客戶端和服務端通過受信集合來交互的工具
- 修復 Bug,此 Bug 在先前的版本中出現(xiàn)時會導致 Docker Daemon 因為等待一個并不存在的進程去下拉鏡像而僵死
4. 網(wǎng)絡(luò)
- 對于容器而言,使用基于 DNS 的發(fā)現(xiàn)機制,取代原先的 /etc/hosts 方式
- 對docker network connect命令中添加網(wǎng)絡(luò)方面的別名,如–net-alias,以及docker run命令時的–alias
- 為docker run以及docker network connect命令添加參數(shù)–ip和–ip6,用以在一個網(wǎng)絡(luò)中為容器自定義 IP
- 為docker network create命令添加參數(shù)–ipam-opt,用于傳入自動的 IP 地址管理(IPAM)的選項
- 在–cluster-store-opt參數(shù)中添加kv.path
- 在–cluster-store-opt參數(shù)中添加discovery.heartbeat和discovery.ttl參數(shù),用于配置服務發(fā)現(xiàn)的 TTL 以及心跳周期
- 為docker network inspect命令添加–format參數(shù)
- 為docker network connect命令添加–link參數(shù),用以提供容器級別的別名
- 通過遠程 IP 地址管理器(IPAM)插件的形式
- 為docker network disconnect命令添加–force參數(shù),用以強制容器從某個 network 中斷開連接
- 在 Linux 內(nèi)核版本 3.10+ 上,使用內(nèi)嵌的 overlay 驅(qū)動來完成跨主機的網(wǎng)絡(luò)互聯(lián)
- 在用戶定義的 network 中,支持在docker run命令中使用–link參數(shù)
- 擴展docker network rm命令,使其有能力一次刪除多個 network
- 在docker inspect命令的輸出內(nèi)容中添加所有容器的名稱
- 在docker network inspect命令中,加入為用戶自定義網(wǎng)絡(luò)自動生成的子網(wǎng)地址
- 為docker network ls命令添加 flag 參數(shù)–filter,用以隱藏預先定義的 networks
- 支持已停止容器的 network 連接/斷開功能
在docker inspect命令的返回結(jié)果中添加 network id
- 修復 MTU 的 bug,之前版本 Docker 在有兩條或者兩條以上路由記錄時啟動就會失效
- 為容器修復重復 IP 地址的 bug
- 修復了有時 Docker Daemon 在創(chuàng)建默認網(wǎng)絡(luò)時存在的 bug
- 在使用–net=host參數(shù)時,不為容器替換 127.0.0.1 的域名服務器地址
5. 日志
- 新增日志驅(qū)動 Splunk
- 在 TCP+TLS 的基礎(chǔ)上,完善對 Syslog 的支持
- 擴展docker logs –since和–until命令,用以支持納秒
- 擴展日志驅(qū)動awslogs,使其當 Docker Daemon 在 AWS EC2 上運行時,可以自動監(jiān)測正確的 Amazon CloudWatch 的日志時區(qū)
6. 存儲卷 Volumes
- 為 Docker 的存儲卷添加設(shè)置 mount propagation mode 的支持
- 為存儲卷插件的 API 添加ls和inspect接口
- 修復了不能從命名存儲卷中拷貝數(shù)據(jù)的 bug
- 允許外部存儲卷驅(qū)動管理異步存儲卷
7. 鏡像構(gòu)建器(builder)
- 在.dockerignore文件中添加對**的支持,實現(xiàn)通配多級目錄
- 修復 Dockerfile 中對 UTF-8 編碼字符的處理
- 修復從標準輸入讀取內(nèi)容時的權(quán)限問題
8. 客戶端
- 通過使用DOCKER_API_VERSION環(huán)境變量來支持API版本覆蓋的支持
9. MISC
- systemd:在systemd服務的配置文件中,為LimitNPROC添加TaskMax參數(shù)
10. 遺棄
- 從 Docker Daemon 移除對 LXC 的支持,在 docker 1.8 版本時,Docker 用來管理容器的驅(qū)動之一——LXC 驅(qū)動就已經(jīng)被標記為 deprecated,現(xiàn)在此驅(qū)動已經(jīng)被移除
- 在docker daemon命令中移除 flag 參數(shù)–exec-driver,因為此驅(qū)動已經(jīng)不再會被使用
- 移除部分 Docker CLI 方面的參數(shù),比如(-rm,選擇用–rm來替代)
- 在容器啟動的 API 中遺棄數(shù)據(jù)結(jié)構(gòu) HostConfig
- 由于某些特定 Linux 版本發(fā)行版項目的終止,從而遺棄這些項目下 docker 軟件包的支持;比如 Fedora 21 和 Ubuntu 15.04(vivid)
- 遺棄docker tag命令的-f參數(shù)
備注:本文來自DaoCloud供稿,獨家授權(quán)發(fā)布,作者孫宏亮,DaoCloud技術(shù)合伙人,主要負責DaoCloud企業(yè)級容器云平臺的研發(fā)。目前已出版《Docker 源碼分析》一書,也是國內(nèi)第一批研究及實踐Docker的工程師,同時也是國內(nèi)社區(qū)極具影響力的Docker布道者。
相關(guān)熱詞搜索:云計算 Docker internet 互聯(lián)網(wǎng)
上一篇:2016年大數(shù)據(jù)在金融領(lǐng)域的10大趨勢
下一篇:TIOBE 2016年2月編程語言排行榜 Java發(fā)展受阻
分享到:
收藏
