docker創(chuàng)建私有倉庫及存儲image
來源:程序員人生 發(fā)布時間:2014-11-04 08:26:13 閱讀次數(shù):4343次
Docker官方的Docker hub雖然提供了有很多image,也基本上包括了我們需要使用的,但是其訪問起來比較慢,如果自己要定制image,多臺http://www.vxbq.cn/server/之間的同享使用此image非常不方便。這個時候我們就迫切需要1個本地的私有倉庫了。下面的圖說明了Docker私有倉庫的作用。

Docker私有倉庫可以通過docker-registry項目來實現(xiàn),通過http服務來上傳下載。docker-registry在Docker hub上已有現(xiàn)成的image。
$ docker search registry
選擇第1個,將其從Docker hub上down下來(最好帶tag,不然會將所有的tag都down下來)。
$ docker pull registry
這個下載的進程有點長,耐心等待1下,O(∩_∩)O哈哈~。
$ docker images
registry鏡像下下來后,通過下面的命令啟動,并將registry的容器存儲images的目錄映照到宿主http://www.vxbq.cn/server/的/opt/docker/registry目錄。
$ docker run -d -p 5000:5000 -v /opt/docker/registry:/tmp/registry registry
啟動以后在閱讀器中輸入http://主機IP:5000或http://主機IP:5000/v1/search,如果有顯示就說明Docker私有倉庫已建好了。下1步將本地的images
push到Docker私有倉庫。
現(xiàn)將本地的image打1個tag,新image名稱必須帶有"主機IP:5000",以下(我這里用127.0.0.1只是舉例)。
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
registry latest 5562556b14f9 8 days ago 422.9 MB
127.0.0.1:5000/registry latest 5562556b14f9 8 days ago 422.9 MB
如果缺少上面這1步,直接push image,會出現(xiàn)以下毛病。
[docker@docker1 ~]$ docker push registry
The push refers to a repository [registry] (len: 1)
Sending image list
2014/10/27 15:48:25 Error: Status 403 trying to push repository registry: Account is not Active
履行以下push命令后,可以在http://主機IP:5000/v1/search看到存儲到Docker私有倉庫的信息。
$ docker push 127.0.0.1:5000/registry
下次可以通過pull命令下載到其他http://www.vxbq.cn/server/上,那可就快多了。pull的時候記得帶"主機IP:5000",不然還是去Docker hub上下載而不是私有倉庫下載,以下命令。
$ docker pull 127.0.0.1:5000/registry
到此,私有倉庫存取image就能夠了。
如果是save/load的image,會出現(xiàn)下面的毛病,對這樣的image,最好重新build相應的Dockerfile。
[docker@docker1 ~] $docker push 127.0.0.1:5000/nexus
The push refers to a repository [127.0.0.1:5000/nexus] (len: 1)
Sending image list
Pushing repository 127.0.0.1:5000/nexus (1 tags)
2014/10/27 14:50:37 HTTP code 400 while uploading metadata: {"error": "Missing key `id' in JSON"}
生活不易,碼農(nóng)辛苦
如果您覺得本網(wǎng)站對您的學習有所幫助,可以手機掃描二維碼進行捐贈