docker私有倉庫registry的搭建

關于registry

官方的Docker hub是一個用于管理公共鏡像的好地方,我們可以在上面找到我們想要的鏡像,也可以把我們自己的鏡像推送上去。但有時我們需要擁有一個私有的鏡像倉庫用于管理我們自己的鏡像。此時可以通過開源軟件registry來達成目的。官方在Docker hub上提供了registry的鏡像(詳情),我們可以直接使用該registry鏡像來構建一個容器,搭建我們自己的私有倉庫服務。

registry部署搭建

  1. 下載registry鏡像,此處我們拉取的版本為當前最新的2.6.1
    docker pull registry:2.6.1
  2. 根據下載的鏡像創建并運行一個容器
    docker run -d -p 5000:5000 -v /data/registry:/var/lib/registry --name registry registry:2.6.1
    -p選項用于將宿主機的端口映射到容器的端口,這樣就可以通過宿主機的地址訪問容器服務
    -v選項用于將宿主機的目錄掛在到容器的目錄,便于直接在宿主機上查看上傳的鏡像
  3. 訪問 http://127.0.0.1:5000/v2,出現以下結果則說明registry服務已啟動成功
    Paste_Image.png

上傳鏡像到私有倉庫

我的機器上有一個從官方下載的postgresql:9.6.2的鏡像,現在將其發布到私有倉庫中

  1. 通過docker tag將該鏡像標志為要推送到私有倉庫
    docker tag 鏡像名[:標簽] 鏡像倉庫服務器地址/命名空間/鏡像發布名:發布標簽
  2. 運行docker push將鏡像push到我們的私有倉庫中
    docker push 鏡像倉庫服務器地址/命名空間/鏡像發布名:發布標簽
    本例中,我們操作如下
    docker tag postgresql:9.6.2 127.0.0.1:5000/firefly/postgresql:9.6.2
    docker push 127.0.0.1:5000/firefly/postgresql:9.6.2
    然后在/data/registry/docker/registry/v2/repositories下看到以命名空間名firefly命名的文件夾,上傳的鏡像即位于該目錄下

刪除已經push到本地倉庫的鏡像。。。

  1. 打開鏡像的存儲目錄,如有-v操作打開掛載目錄也可以,刪除鏡像文件夾
    docker exec <容器名> rm -rf /var/lib/registry/docker/registry/v2/repositories/<鏡像名>
  2. 執行垃圾回收操作,注意2.4版本以上的registry才有此功能
    docker exec registry bin/registry garbage-collect /etc/docker/registry/config.yml
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容