在國內docker-hub是肯定用不了的,不解釋:sweat:。
所以最好還是建一個私有的docker-registry,存儲一些常用的images方便隨時pull。
相關鏈接
github:https://github.com/dotcloud/docker-registry
api:http://docs.docker.com/reference/api/registry_api/
安裝docker-registry
官方直接給出了一個創建container的命令,在裝有docker的機器上運行docker run -d -p 5000:5000 registry
,
這個貌似要下載很多東西,大概500M左右,免去了手工安裝的過程,很方便。
安裝安成之后直接訪問 http://ip:5000
就可以看到
“docker-registry server (dev) (v0.7.3)”
說明安裝成功了,更多安裝細節,或者配置請參考https://github.com/dotcloud/docker-registry。
push到私有docker-registry
首先解釋一下docker中鏡像的命名規則,如:registry.domain.com/mycom/base:latest
,這是一個完整的image名稱,下面說下各部分的作用
- registry.domain.com: image所在服務器地,如果是官方的hub部分忽略
- mycom:namespace,被稱為命名空間,或者說成是你鏡像的一個分類
- base:這個是鏡像的具體名字
- latest:這是此image的版本號,當然也可能是其它的,如1.1之類的
然后是如何push到私有docker-registry,直接上命令:
docker tag b750fe79269d 127.0.0.1:5000/mycom/base
b750fe79269d
是現有image一個id,你可以從docker hub中pull,或者自己構建image。后面的部分參考上面解釋。
這一步的工作主要是給image指定一個服務器地址,讓docker知道往哪里push。
然后就是push,命令:
docker push 127.0.0.1:5000/mycom/base
然后等待docker push完成就可以從私有docker-registry中pull或者run了,如:
docker run 127.0.0.1:5000/mycom/base
這里直接使用本機ip,正式使用最好指定一個二級域名,這樣ip變了以后也不影響使用。
私有docker-registry的使用
其實http://docs.docker.com/reference/api/registry_api/這里有docker-registry的api,
只是沒有如何獲取所有image列表的方法,后來查了下,可通過http://127.0.0.1:5000/v1/search查出
如果需要的話建立一個頁面,可供查詢所有可用的image,同事們就可以隨時從你的docker-registry中pull他想要的image,這個速度當然是不言而喻的了,更重要的是不用擔心會失敗:+1:。