docker搭建私有倉庫

2022-01-11 22:48:55 字數 4082 閱讀 7713

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

docker pull registry

緊接著,registry需要https執行環境,所以來生成我們自己的證書(簡單說明一下,目前的registry版本是2,之前的1是支援非ssl的,docker在0.9以下。)

先交代一下環境:物理機是win10,使用hyper-v 虛擬乙個cenots(ip:192.168.50.2)作為我們的docker host。使用內部網路,物理機共享本地網路方式連線上網。私有倉庫使用網域名稱local.registry.docker.com,埠:3075。

#建立證書資料夾

mkdir certs

#建立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

#建立乙個我們的private registry使用者,admin admin 就是賬號和密碼了。

docker run --entrypoint htpasswd registry:2 -bbn admin admin > /auth/htpasswd

網路環境還不錯的情況下,這個時候pull registry應該也已經完成了。那......

然後,把我們的 私有倉庫跑起來先

解釋一下引數:

-d:表示容器後台執行

-p:埠對映

--restart=always:可以理解為開機啟動。開機:就是啟動docker客戶端拉。

--name registry:給容器取乙個名字,方便識別和記憶

-v:掛在本地檔案到容器中。命令格式:hostdir:cdir[:rw|ro] 主機目錄:容器目錄[:讀寫許可權]

-vpwd/auth:/auth:掛在本地的密碼資料夾

-vpwd/certs:/certs:掛在本地的ssl證書資料夾

-e:設定環境變數引數

-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則是映象的名字了。具體引數什麼的,可以參考registry官方文件位址

centos docker客戶端配置私有倉庫信任

#在每個安裝docker客戶端的機器上執行。將前面搭建私有倉庫建立的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 錯誤。詳見問題描述及解決辦法不想折騰了,索性安裝另外乙個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= -e registry\_name= --add-host local.registry.docker.com:192.168.50.2 hyper/docker-registry-web
安裝指令碼引數解釋

--link registry:容器之間建立聯絡,個人猜測,起始不需要,因為沒用到.......

-e registry_basic_auth:連線到私有倉庫的賬號密碼base64結果(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機器上,這樣,在我們的web ui容器中訪問我們的私有倉庫位址時,才能正確解析。

這幾天的學習和折騰就暫時到這裡了,後續在研究一下docker-compose容器編排和自動構建部署。

docker搭建私有倉庫

registry映象 docker pull registry 二 通過該映象啟動乙個容器 docker run d p 5000 5000 v opt data registry tmp registry registry 注 預設情況下,會將倉庫存放於容器內的 tmp registry目錄下,這...

Docker搭建私有倉庫

docker私有倉庫 1 私有倉庫搭建與配置 1 拉取私有倉庫映象 此步省略 docker pull registry 2 啟動私有倉庫容器 docker run di name registry p 5000 5000 registry 3 開啟瀏覽器 輸入位址看到 表示私有倉庫搭建成功並且內容為...

docker搭建私有倉庫

先吧私有倉庫down下來,這需要一點時間,剛好這中間的時間,我們可以準備一下其他的東西 docker pull registry 緊接著,registry需要https執行環境,所以來生成我們自己的證書 簡單說明一下,目前的registry版本是2,之前的1是支援非ssl的,docker在0.9以下...