久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

Docker私有倉庫Registry如何搭建

209次閱讀
沒有評論

共計 2964 個字符,預計需要花費 8 分鐘才能閱讀完成。

這篇文章主要為大家展示了“Docker 私有倉庫 Registry 如何搭建”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓丸趣 TV 小編帶領大家一起研究并學習一下“Docker 私有倉庫 Registry 如何搭建”這篇文章吧。

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 版本。

2. Registry 的部署

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

$ sudo docker pull registry:2

然后啟動一個容器,

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

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

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

$ sudo docker ps 
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
f3766397a458 registry:2  /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 如何搭建

3.  驗證

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

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

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

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

$ sudo docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
registry 2 b91f745cd233 5 days ago 220.1 MB
ubuntu 14.04 a5a467fddcb8 6 days ago 187.9 MB
hello-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 到我們的私有倉庫中,

$ sudo docker push 127.0.0.1:5000/hello-world
The 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

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

 Docker 私有倉庫 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 鏡像,

$ sudo docker pull 127.0.0.1:5000/hello-world
Using default tag: latest
latest: Pulling from hello-world
b901d36b6f2f: Pull complete 
0a6ba66e537a: Pull complete 
Digest: sha256:1c7adb1ac65df0bebb40cd4a84533f787148b102684b74cb27a1982967008e4b
Status: Downloaded newer image for 127.0.0.1:5000/hello-world:latest
$ sudo docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
registry 2 b91f745cd233 5 days ago 220.1 MB
ubuntu 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 即可。

以上是“Docker 私有倉庫 Registry 如何搭建”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注丸趣 TV 行業資訊頻道!

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-08-25發表,共計2964字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 扎赉特旗| 河间市| 石门县| 灵寿县| 元谋县| 遂川县| 齐齐哈尔市| 如皋市| 黑山县| 松桃| 祁阳县| 开封县| 丰县| 梁山县| 沧州市| 徐汇区| 泸定县| 辉南县| 定陶县| 金平| 江源县| 靖宇县| 梅河口市| 天等县| 新源县| 朝阳区| 凉城县| 莒南县| 敖汉旗| 车致| 米林县| 正安县| 米脂县| 陵水| 留坝县| 沙洋县| 安图县| 乡城县| 门源| 凌云县| 高碑店市|