玩轉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 映象加速器的配置以及驗證全過程,大家有興趣可嘗試一下,總之,好記性不如爛筆頭,歡迎大家批評指正!
完