Docker應用--搭建Docker鏡像的本地倉庫

Docker的倉庫是DockerHub,類似於GitHub。GitHub有一個開源的軟件叫GitLab。Docker也有一個開源軟件Docker registry。

創建私有倉庫

在私有倉庫主機上下載registry鏡像。

docker pull registry

默認情況下,倉庫會將鏡像存放在/var/lib/registry目錄下,這裏指定本地一個目錄掛載到容器內的/var/lib/registry下,如下:

sudo mkdir -pv /opt/data/registry
docker run -d -p 5000:5000 -v /opt/data/registry:/var/lib/registry registry 

此時就會啓動一個registry容器,地址爲http://<ip>:5000

測試一下

接下來我們要做的就是把本地的一個鏡像push到私有倉庫中去,首先在本機上pull一個比較小的鏡像來做測試(此處使用的是busybox)。

docker pull busybox

接下來修改鏡像的tag。

docker tag busybox 127.0.0.1:5000/busybox 

接下來將打了tag的鏡像上傳到私有倉庫中。

docker push 127.0.0.1:5000/busybox

可以看到鏡像已經push到私有倉庫中去了。
接下來,我們刪除本地鏡像,然後從私有倉庫pull下來該鏡像。

docker pull 127.0.0.1/busybox

由此可見,Docker鏡像的本地倉庫已經搭建成功,並且可以正常使用了。

如何修改默認的鏡像倉庫

執行docker pull image_NAME 默認都是去官方來拉取。本地已建registry,就是每次得以這種格式拉取:docker pull IP:PORT/image_NAME,很不方便。利用下邊的方法可以實現首先從本地倉庫中查詢,如果本地倉庫中沒有再去官方鏡像源拉取。

修改配置文件/etc/default/docker。增加如下內容:

DOCKER_OPTS="--insecure-registry 127.0.0.1:5000"

修改完成後,重啓docker服務即可。

service docker restart

注意:
因爲Docker從1.3.X以後,與docker registry交互默認使用的是https,然而此處搭建的私有倉庫只提供http服務,所以當與私有倉庫交互時會報上面的錯誤。爲了解決這個問題需要在啓動docker server時增加參數爲默認使用http訪問,修改docker啓動的配置文件。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章