docker registry(私庫)搭建,使用,WEB視覺化管理部署

Net碼畜發表於2022-12-15

Docker Registry 是Docker官方一個映象,可以用來儲存和分發Docker映象。目前比較流行的兩個映象私庫是Docker Registry ,HarBor 其中HarBor最合適企業級應用,提供良好的WEB介面進行管理。

Docker Registry搭建

本文主要介紹Docker Registry搭建的方式,官網地址:registry - Official Image | Docker Hub

拉取映象:

docker pull registry

執行映象:

 docker run -d -p 5000:5000 --restart always --name registry registry:2

防火牆需要開放5000埠,或者直接關閉防火牆

systemctl status firewalld.service   #檢視防火牆狀態
systemctl stop firewalld.service     #暫停防火牆
systemctl disable firewalld.service  #永久關閉防火牆

檢查映象是否執行成功:docker ps,映象成功之後私庫就算搭建成功了。

推送程式碼

方法一:VS2019釋出可以一步直接推送到私庫

每次點選發布就會自動推送到私庫,相當方便,背後原理和手動推送沒有區別,只是VS2019默默地把我們做了工作:建立映象,給映象打標籤,推送映象。透過Docker Desktop 工具我們可以檢視到本地映象:

方法二:手動推送

手動推送需要我們先給映象打標籤,然後推送映象。

docker image tag webapplication4 192.168.3.35:5000/webapplication4:latest
docker push 192.168.3.35:5000/webapplication4:latest

檢視己推送的映象,Docker Registry支援HTTP請求API獲取相關資料,最好是搭建WEB視覺化介面管理,下文有講到。

注意事項:docker 預設要求HTTPS連線,如果私庫不搭建HTTPS,那麼客戶端就需要配置docker的配置檔案新增信任源。伺服器端(即docker私庫)不需要配置。

{ 
  "insecure-registries":["192.168.3.35:5000"]
}

Htpasswd

一般情況下Docker Registry是充許自由訪問,作為公司或個人私庫自然是需要進行安全設定,我們可以透過htpasswd實現登陸限制。

安裝htpasswd

yum -y install httpd

在宿主機上建立資料夾來儲存htpasswd的賬號或密碼

mkdir /usr/local/auth

生成密碼

htpasswd -Bbn admin 123456 > /usr/local/auth/passwd

需要重啟容器,配置htpasswd

docker run  
-p 5000:5000   
--restart=always  
--name registry  
-v /usr/local/auth:/auth   
-e REGISTRY_AUTH=htpasswd   
-e REGISTRY_AUTH_HTPASSWD_REALM=Registry_Realm   
-e REGISTRY_AUTH_HTPASSWD_PATH=/auth/passwd 
-d registry:2

重新請求API介面時,己提示需要認證。

搭建視覺化WEB介面

私庫可以透過API進行互動,這樣互動會很麻煩,提供視覺化介面會比較容易管理一些,docker-registry-browser 管理介面提供一些基礎功能,簡單易用。

dokcer Hub地址:klausmeyer/docker-registry-browser - Docker Image | Docker Hub

gitHub地址:docker-registry-browser/README.md at master · klausmeyer/docker-registry-browser · GitHub

在私庫伺服器執行映象:

docker run 
--name registry-browser
-p 8080:8080 
--restart=always 
--link registry 
-e DOCKER_REGISTRY_URL=http://registry:5000/v2 
-d klausmeyer/docker-registry-browser

 注意事項:docker-registry-browser是映象,當執行docker-registry-browser的時候會新建一套虛擬環境,所以預設配置下docker-registry-browser是管理不到docker私庫。需要特別配置兩個引數:

--link registry

-e DOCKER_REGISTRY_URL=http://registry:5000/v2

對應的是私庫的容器名稱和請求API地址,預設啟動之後,訪問就提示需要賬號,密碼。

Docker Registry 私庫流程大概如此,感興趣的朋友關注一下~

相關文章