倉(cāng)庫(kù)簡(jiǎn)介
隨著創(chuàng)建的鏡像日益增多,就需要有一個(gè)保存鏡像的地方,這就是倉(cāng)庫(kù)。目前有兩種倉(cāng)庫(kù):公共倉(cāng)庫(kù)和私有倉(cāng)庫(kù)。最方便的就是使用公共倉(cāng)庫(kù)上傳和下載鏡像,下載公共倉(cāng)庫(kù)中的鏡像不需要注冊(cè),但上傳鏡像到公共倉(cāng)庫(kù)是需要注冊(cè)的。公共倉(cāng)庫(kù)中填寫(xiě)完成倉(cāng)庫(kù)的ID號(hào)、郵箱以及登錄倉(cāng)庫(kù)的密碼并在郵件中進(jìn)行激活就可以上傳自己的鏡像。
那么怎么構(gòu)建屬于自己的私有倉(cāng)庫(kù)呢?可以使用registry來(lái)搭建本地私有倉(cāng)庫(kù)。
步驟
下載registry鏡像
# docker pull registry
下載完成后的狀態(tài):
Using default tag: latest latest: Pulling from library/registry 4064ffdc82fe: Pull complete c12c92d1c5a2: Pull complete 4fbc9b6835cc: Pull complete 765973b0f65f: Pull complete 3968771a7c3a: Pull complete Digest: sha256:51bb55f23ef7e25ac9b8313b139a8dd45baa832943c8ad8f7da2ddad6355b3c8 Status: Downloaded newer image for registry:latest
創(chuàng)建json文件
# vim /etc/docker/daemon.json { "insecure-registries":["192.168.177.147:5000"]} //本地的IP及端口號(hào)
重啟服務(wù)
# systemctl restart docker.service
==注==:創(chuàng)建完json文件后,一定要重啟服務(wù),不然后面可能會(huì)出錯(cuò)
創(chuàng)建容器并掛載
# docker create -it registry /bin/bash //創(chuàng)建容器 # docker ps -a //查看容器的運(yùn)行狀態(tài) # docker start 67b98e15c857 # docker run -d -p 5000:5000 -v /data/registry:/tmp/registry registry //宿主機(jī)的/data/registry自動(dòng)創(chuàng)建掛載容器中的/tmp/registry
上傳鏡像
# docker tag jasonlix/docker-cobbler 192.168.177.147:5000/cobbler //更改標(biāo)記為192.168.177.147:5000/cobbler # docker push 192.168.175.145:5000/cobbler //上傳鏡像
顯示:
The push refers to a repository [192.168.177.147:5000/cobbler] 983c23e6d629: Pushed 58c8b3d7f322: Pushed e6bf41084b0e: Pushed eb048cf06c75: Pushed 34e7b85d83e4: Pushed latest: digest: sha256:dfb7b852c32b24b92fc3dff6f559dbf3ab77cbdf1b0247a843ffcddd336f3ab0 size: 1362
獲取私有倉(cāng)庫(kù)列表
# curl -XGET http://192.168.177.147:5000/v2/_catalog //獲取私有倉(cāng)庫(kù)列表