docker私有倉庫registry的搭建

關(guān)于registry

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

registry部署搭建

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

上傳鏡像到私有倉庫

我的機(jī)器上有一個從官方下載的postgresql:9.6.2的鏡像,現(xiàn)在將其發(fā)布到私有倉庫中

  1. 通過docker tag將該鏡像標(biāo)志為要推送到私有倉庫
    docker tag 鏡像名[:標(biāo)簽] 鏡像倉庫服務(wù)器地址/命名空間/鏡像發(fā)布名:發(fā)布標(biāo)簽,
  2. 運行docker push將鏡像push到我們的私有倉庫中
    docker push 鏡像倉庫服務(wù)器地址/命名空間/鏡像發(fā)布名:發(fā)布標(biāo)簽
    本例中,我們操作如下
    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命名的文件夾,上傳的鏡像即位于該目錄下

刪除已經(jīng)push到本地倉庫的鏡像。。。

  1. 打開鏡像的存儲目錄,如有-v操作打開掛載目錄也可以,刪除鏡像文件夾
    docker exec <容器名> rm -rf /var/lib/registry/docker/registry/v2/repositories/<鏡像名>
  2. 執(zhí)行垃圾回收操作,注意2.4版本以上的registry才有此功能
    docker exec registry bin/registry garbage-collect /etc/docker/registry/config.yml
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容