1. 程式人生 > >玩轉docker-映象加速器

玩轉docker-映象加速器

映象加速器

    Docker之所以這麼吸引人,除了它的新穎的技術外,圍繞官方Registry(Docker Hub)的生態圈也是相當吸引人眼球的地方。在Docker Hub上你可以很輕鬆下載到大量已經容器化好的應用映象,即拉即用。這些映象中,有些是Docker官方維護的,更多的是眾多開發者自發上傳分享的。而且你還可以在Docker Hub中繫結你的程式碼託管系統(目前支援Github和Bitbucket)配置自動生成映象功能,這樣Docker Hub會在你程式碼更新時自動生成對應的Docker映象,是不是很方便?

    有個問題,Docker hub 官方雖然提供了眾多的應用映象,即拉即用,但,由於大家都懂得原因,國內訪問Docker Hub的速度很不穩定,我們可以通過設定國內的docker映象的代理服務,解決這個問題。

    映象加速器的原理其實很簡單,類似於快取,首先如果映象檔案在伺服器中的mirror檔案中有快取,則直接命中返回給客戶端,否則將會根據--Registry 設定的映象加速地址,從遠端伺服器優先載入到本地快取(本地倉庫),最酷的是,是否使用Mirror對Docker使用者來講是透明的,也就是說在配置Mirror以後,大家可以仍然輸入docker pull ubuntu來拉取Docker Hub映象,除了速度變快了,和以前沒有任何區別。

    這點特別像Maven遠端倉庫,都是從遠端節點載入到本地倉庫.目前,國內很多的雲服務提供商都支援映象資源,這裡我採用阿里雲的映象伺服器,配置給大家看看:

 

訪問地址:阿里雲docker映象加速器連結

舉個例子

    拿拉去mysql映象為例,簡單瞭解一下docker 配置映象加速器之後,拉去速度如何:

途中打馬賽克處(為了保密,你懂得),就是我在阿里管理平臺設定的映象加速地址,大家也可設定一下

接著,上乾貨,嘗試拉去mysql看看如何

首先我訪問一下官網  https://hub.docker.com/,搜了一下mysql的映象,隨便找一個映象例子,點進去之後,能看到映象執行命令,見如下圖:

配置一下映象加速器地址:

位置:/etc/docker/daemon.json

執行docker pull mysql ,執行介面效果見如下圖:

速度還是挺快的,,需要注意的是,docker 打包的時候是分層打包,同樣,拉取的時候也是分層拉取,每層都有一個唯一標識hash值

docker images 看看映象情況,發現多了一個mysql,485m配置映象之後,差不多5分鐘左右全部拉去完畢

    上述是整個docker 映象加速器的配置以及驗證全過程,大家有興趣可嘗試一下,總之,好記性不如爛筆頭,歡迎大家批評指正!