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

2022-12-15 18:00:22

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 私庫流程大概如此,感興趣的朋友關注一下~