日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

docker搭建私有仓库

發(fā)布時間:2025/3/15 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 docker搭建私有仓库 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

緊接上一篇鏡像發(fā)布到官方之后,我們來搭建我們自己的私有倉庫,比較,如果真的要在生產(chǎn)環(huán)境使用的話,這是必須的。
首先,我們來準(zhǔn)備一下搭建私有倉庫所需要的信息。

#先吧私有倉庫down下來,這需要一點時間,剛好這中間的時間,我們可以準(zhǔn)備一下其他的東西 docker pull registry

緊接著,registry需要https運行環(huán)境,所以來生成我們自己的證書(簡單說明一下,目前的registry版本是2,之前的1是支持非ssl的,docker在0.9以下。)
先交代一下環(huán)境:物理機(jī)是win10,使用hyper-v 虛擬一個cenots(ip:192.168.50.2)作為我們的docker host。使用內(nèi)部網(wǎng)絡(luò),物理機(jī)共享本地網(wǎng)絡(luò)方式連接上網(wǎng)。私有倉庫使用域名local.registry.docker.com,端口:3075。

#創(chuàng)建證書文件夾 mkdir certs #創(chuàng)建registry登錄用戶配置文件文件夾 mkdir auth #生成我們的ssl證書 openssl req -newkey rsa:4096 -nodes -sha256 -keyout /certs/local.registry.docker.com.key -x509 -days 365 -out /certs/local.registry.docker.com.crt #創(chuàng)建一個我們的private registry用戶,admin admin 就是賬號和密碼了。 docker run --entrypoint htpasswd registry:2 -Bbn admin admin > /auth/htpasswd

網(wǎng)絡(luò)環(huán)境還不錯的情況下,這個時候pull registry應(yīng)該也已經(jīng)完成了。那......
然后,把我們的 私有倉庫跑起來先

docker run -dit -p 3075:5000 --restart=always --name hub \-v /auth:/auth \-e "REGISTRY_AUTH=htpasswd" \-e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" \-e REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd \-v /certs:/certs \-e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/local.registry.docker.com.crt \-e REGISTRY_HTTP_TLS_KEY=/certs/local.registry.docker.com.key \registry:2


解釋一下參數(shù):
-d:表示容器后臺運行
-p:端口映射
--restart=always:可以理解為開機(jī)啟動。開機(jī):就是啟動docker客戶端拉。
--name registry:給容器取一個名字,方便識別和記憶
-v:掛在本地文件到容器中。命令格式:hostdir:cdir[:rw|ro] 主機(jī)目錄:容器目錄[:讀寫權(quán)限]
-v pwd/auth:/auth:掛在本地的密碼文件夾
-v pwd/certs:/certs:掛在本地的ssl證書文件夾

-e:設(shè)置環(huán)境變量參數(shù)
-e REGISTRY_AUTH:驗證方式
-e REGISTRY_AUTH_HTPASSWD_REALM:驗證域名
-e REGISTRY_AUTH_HTPASSWD_PATH:密碼文件路徑
-e REGISTRY_HTTP_TLS_CERTIFICATE:ssl證書文件路徑
-e REGISTRY_HTTP_TLS_KEY:ssl證書文件路徑
最后的registry則是鏡像的名字了。具體參數(shù)什么的,可以參考registry官方文檔地址
centos docker客戶端配置私有倉庫信任

#在每個安裝docker客戶端的機(jī)器上執(zhí)行。將前面搭建私有倉庫創(chuàng)建的ssl證書copy到/etc/docker/certs.d/[倉庫地址],如果不走這一步,就會收到下下下圖的這種錯誤 x509....... mkdir -p /etc/docker/certs.d/local.registry.docker.com:3075 cp /certs/local.registry.docker.com.crt /etc/docker/certs.d/local.registry.docker.com\:3075/

windows配置私有倉庫

在然后,登錄到私有倉庫

在在然后,吧我們剛才的hello world項目push到我們的本地倉庫
docker tag imageid imagename:給鏡像打個tag,然后push這個tag到本地倉庫。

在在在然后,把我們的私有倉庫的hello world跑起來

在在在在然后,在文章的最后,我們在裝一個私有倉庫web ui瀏覽工具(hyper/docker-registry-web):

本來想安裝一個web ui管理工具:konradkleine/docker-registry-frontend,但是......,奈何......啟動提示 no mpm loaded 錯誤。詳見問題描述及解決辦法https://github.com/kwk/docker-registry-frontend/issues/88。不想折騰了,索性安裝另外一個web ui 瀏覽工具
話說web ui還是有好幾個的,排在最前面的3個ui鏡像,第一個安裝有錯誤,要特殊處理,那我們就安裝第二個好了......

docker run -dit -p 8899:8080 --restart=always --name registry-web-manager --link registry -e REGISTRY\_BASIC\_AUTH="YWRtaW46YWRtaW4=" -e REGISTRY\_TRUST\_ANY\_SSL=true -e REGISTRY\_URL=https://local.registry.docker.com:3075/v2/ -e REGISTRY\_NAME=https://local.registry.docker.com:3075 --add-host local.registry.docker.com:192.168.50.2 hyper/docker-registry-web

安裝腳本參數(shù)解釋
--link registry:容器之間建立聯(lián)系,個人猜測,起始不需要,因為沒用到.......
-e REGISTRY_BASIC_AUTH:連接到私有倉庫的賬號密碼base64結(jié)果(base64(username:password))。所以為什么倉庫為什么要選擇htpasswd驗證方式了。
-e REGISTRY_TRUST_ANY_SSL:忽略ssl錯誤,因為我們用的是自簽名的ssl證書
-e REGISTRY_URL:倉庫訪問地址
-e REGISTRY_NAME:倉庫名
--add-host local.registry.docker.com:192.168.50.2:增加一條本地host。指示對我們local.registry.docker.com的訪問解析到我們的docker host機(jī)器上,這樣,在我們的web ui容器中訪問我們的私有倉庫地址時,才能正確解析。
這幾天的學(xué)習(xí)和折騰就暫時到這里了,后續(xù)在研究一下docker-compose容器編排和自動構(gòu)建部署。

總結(jié)

以上是生活随笔為你收集整理的docker搭建私有仓库的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。