最近使用Docker的同窗愈來愈多。python
使用Docker的時候須要瞭解Registry服務 - 即鏡像存儲服務。git
Registry是一個管理Docker鏡像的服務,當使用Docker的Push, Pull等操做時實際上都是與Registry服務進行交互,相似本地Git和遠程Git Repository的關係。github
DockerHub
做爲默認的Registry服務提供很是多的公共鏡像,而且爲每一個註冊者提供10個私有Repository。docker
早些時候在國內訪問 DockerHub (前身域名爲 index.docker.io) 常常被牆,須要使用代理訪問,後來DockerHub改用AWS提供的CloudFront做爲CDN服務解決了這個問題,訪問速度也有了必定的改善。ubuntu
咱們能不能本身作一個私有的Registry服務?這樣有幾方面的好處。後端
實際上Docker官方已經有一個開源版Registry服務,Python寫的。其後端存儲方案有兩個。安全
能不能使用國內存儲服務(如新浪雲存儲
),作一個私有Registry呢?性能
在進一步瞭解的過程當中,筆者瞭解到實際上Registry服務自己提供Driver機制,能夠整合更多的存儲服務整合。測試
因而,利用中秋休假的時間,寫了這樣的一個Driver。優化
https://pypi.python.org/pypi/docker-registry-driver-sinastorage/
安裝部署:
運行以下命令:
# 使用以前申請好的帳號Key及想要的Bucket名稱,代替YOUR_*部分。 docker run -d \ -e SETTINGS_FLAVOR=sinastorage \ -e SINASTORAGE_BUCKET=YOUR_BUCKET \ -e SINASTORAGE_ACCESSKEY=YOUR_ACCESSKEY \ -e SINASTORAGE_SECRETKEY=YOUR_SECRETKEY \ -p 5000:5000 --name registry kerwin/docker-registry-sinastorage
這樣命令會在本地啓動5000端口的服務, 如何使用:
docker tag ubuntu localhost:5000/ubuntu docker push localhost:5000/ubuntu # 這樣上傳了一個ubuntu的基本鏡像。任什麼時候刻想要用到原來鏡像的時候: docker pull localhost:5000/ubuntu
注: