国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 服務器 > Web服務器 > 正文

詳解Docker私有倉庫Registry的搭建驗證

2024-09-01 13:51:37
字體:
來源:轉載
供稿:網友

1. 關于Registry

官方的Docker hub是一個用于管理公共鏡像的好地方,我們可以在上面找到我們想要的鏡像,也可以把我們自己的鏡像推送上去。但是,有時候,我們的使用場景需要我們擁有一個私有的鏡像倉庫用于管理我們自己的鏡像。這個可以通過開源軟件Registry來達成目的。

 Registry在github上有兩份代碼:老代碼庫和新代碼庫。老代碼是采用python編寫的,存在pull和push的性能問題,出到0.9.1版本之后就標志為deprecated,不再繼續開發。從2.0版本開始就到在新代碼庫進行開發,新代碼庫是采用go語言編寫,修改了鏡像id的生成算法、registry上鏡像的保存結構,大大優化了pull和push鏡像的效率。

 官方在Docker hub上提供了registry的鏡像(詳情),我們可以直接使用該registry鏡像來構建一個容器,搭建我們自己的私有倉庫服務。Tag為latest的registry鏡像是0.9.1版本的,我們直接采用2.1.1版本。

 2. Registry的部署

運行下面命令獲取registry鏡像,

$ sudo docker pull registry:2.1.1

然后啟動一個容器,

 

復制代碼 代碼如下:

$ sudo docker run -d -v /opt/registry:/var/lib/registry -p 5000:5000 --restart=always --name registry registry:2.1.1

 

Registry服務默認會將上傳的鏡像保存在容器的/var/lib/registry,我們將主機的/opt/registry目錄掛載到該目錄,即可實現將鏡像保存到主機的/opt/registry目錄了。

 運行docker ps看一下容器情況,

lienhua34@lienhua34-Compaq-Presario-CQ35-Notebook-PC ~ $ sudo docker ps CONTAINER ID    IMAGE        COMMAND         CREATED       STATUS       PORTS          NAMESf3766397a458    registry:2.1.1   "/bin/registry /etc/d"  46 seconds ago   Up 45 seconds    0.0.0.0:5000->5000/tcp  registry

說明我們已經啟動了registry服務,打開瀏覽器輸入http://127.0.0.1:5000/v2,出現下面情況說明registry運行正常,

 docker,私有registry,registry,搭建

3. 驗證

現在我們通過將鏡像push到registry來驗證一下。

我的機器上有個hello-world的鏡像,我們要通過docker tag將該鏡像標志為要推送到私有倉庫,

$ sudo docker tag hello-world 127.0.0.1:5000/hello-world

然后查看以下本地的鏡像,

lienhua34@lienhua34-Compaq-Presario-CQ35-Notebook-PC ~ $ sudo docker imagesREPOSITORY          TAG         IMAGE ID      CREATED       VIRTUAL SIZEregistry           2.1.1        b91f745cd233    5 days ago     220.1 MBubuntu            14.04        a5a467fddcb8    6 days ago     187.9 MBhello-world         latest       975b84d108f1    2 weeks ago     960 B127.0.0.1:5000/hello-world  latest       975b84d108f1    2 weeks ago     960 B

接下來,我們運行docker push將hello-world鏡像push到我們的私有倉庫中,

lienhua34@lienhua34-Compaq-Presario-CQ35-Notebook-PC ~ $ sudo docker push 127.0.0.1:5000/hello-worldThe push refers to a repository [127.0.0.1:5000/hello-world] (len: 1)975b84d108f1: Image successfully pushed 3f12c794407e: Image successfully pushed latest: digest: sha256:1c7adb1ac65df0bebb40cd4a84533f787148b102684b74cb27a1982967008e4b size: 2744

現在我們可以查看我們本地/opt/registry目錄下已經有了剛推送上來的hello-world。我們也在瀏覽器中輸入http://127.0.0.1:5000/v2/_catalog,如下圖所示,

 docker,私有registry,registry,搭建

現在我們可以先將我們本地的127.0.0.1:5000/hello-world和hello-world先刪除掉,

$ sudo docker rmi hello-world$ sudo docker rmi 127.0.0.1:5000/hello-world

然后使用docker pull從我們的私有倉庫中獲取hello-world鏡像,

lienhua34@lienhua34-Compaq-Presario-CQ35-Notebook-PC ~ $ sudo docker pull 127.0.0.1:5000/hello-worldUsing default tag: latestlatest: Pulling from hello-worldb901d36b6f2f: Pull complete 0a6ba66e537a: Pull complete Digest: sha256:1c7adb1ac65df0bebb40cd4a84533f787148b102684b74cb27a1982967008e4bStatus: Downloaded newer image for 127.0.0.1:5000/hello-world:latestlienhua34@lienhua34-Compaq-Presario-CQ35-Notebook-PC ~ $ sudo docker imagesREPOSITORY          TAG         IMAGE ID      CREATED       VIRTUAL SIZEregistry           2.1.1        b91f745cd233    5 days ago     220.1 MBubuntu            14.04        a5a467fddcb8    6 days ago     187.9 MB127.0.0.1:5000/hello-world  latest       0a6ba66e537a    2 weeks ago     960 B

4. 可能問題

可能會出現無法push鏡像到私有倉庫的問題。這是因為我們啟動的registry服務不是安全可信賴的。這是我們需要修改docker的配置文件/etc/default/docker,添加下面的內容,

DOCKER_OPTS="--insecure-registry xxx.xxx.xxx.xxx:5000"

然后重啟docker后臺進程,

$ sudo service docker restart

這是再push即可。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 黔西县| 兰考县| 济阳县| 武定县| 宁海县| 白银市| 二连浩特市| 依兰县| 昌都县| 信阳市| 枣阳市| 扶风县| 阿荣旗| 揭西县| 安岳县| 临夏县| 九龙坡区| 茶陵县| 栾川县| 徐水县| 太原市| 皮山县| 鹤庆县| 赤峰市| 仪征市| 弥渡县| 绩溪县| 五家渠市| 驻马店市| 库车县| 临洮县| 民勤县| 石泉县| 精河县| 顺平县| 蓝山县| 新密市| 抚州市| 黄浦区| 中超| 连南|