Docker中Harbor企業(yè)級鏡像倉庫的搭建與使用
本章將和大家分享Docker倉庫之Harbor企業(yè)級鏡像倉庫的搭建與使用。廢話不多說,下面我們直接進入主題。
一、企業(yè)最愛:Harbor企業(yè)級鏡像倉庫
Harbor是VMware公司開源的一個企業(yè)級Docker Registry項目,項目地址:https://github.com/goharbor/harbor
Harbor是一個開源的企業(yè)級Docker Registry服務,它提供了一個安全、可信賴的倉庫來存儲和管理Docker鏡像。
雖然Harbor和Registry都是私有鏡像倉庫的選擇,但是Harbor的企業(yè)級特性更強,因此也是更多企業(yè)級用戶的選擇。
Harbor實現(xiàn)了基于角色的訪問控制機制,并通過項目來對鏡像進行組織和訪問權限的控制,也常常和K8S中的namespace結合使用。此外,Harbor還提供了圖形化的管理界面,我們可以通過瀏覽器來瀏覽,檢索當前Docker鏡像倉庫,管理項目和命名空間。
二、一些準備工作
1、安裝docker
如果還沒有安裝docker,那么請先安裝docker,已安裝則跳過。
[root@localhost ~]# docker -v Docker version 26.1.4, build 5650f9b
之前的博文我們已經(jīng)講解過Docker的安裝,此處已經(jīng)安裝過就不再安裝了。
2、安裝docker-compose
此處我采用的是離線安裝方式。
首先下載 docker-compose 到本地,下載地址:https://github.com/docker/compose/
下載鏈接:https://github.com/docker/compose/releases/download/v2.30.1/docker-compose-linux-x86_64
如果直接點擊下載比較慢的話,建議復制鏈接地址到迅雷下載,這樣可能會快一些。下載完成后,把它上傳到 Linux 服務器,如下所示:
接著把可執(zhí)行文件移到 Linux 系統(tǒng)命令目錄(/usr/local/bin/)下,并重命名為 “docker-compose” :mv docker-compose-linux-x86_64 /usr/local/bin/docker-compose
授權:chmod +x /usr/local/bin/docker-compose
驗證是否安裝成功:docker-compose --version
如果能正常顯示出正確的版本號,說明安裝成功了。
如果需要卸載,直接刪除即可:sudo rm /usr/local/bin/docker-compose
三、Harbor安裝與配置
1、下載 Harbor 離線安裝包
通過 GitHub下載離線安裝包,下載地址:https://github.com/goharbor/harbor
下載鏈接:https://github.com/goharbor/harbor/releases/download/v2.11.1/harbor-offline-installer-v2.11.1.tgz
如果直接點擊下載比較慢的話,建議復制鏈接地址到迅雷下載,這樣可能會快一些。
2、把安裝包上傳到 Linux 服務器
下載完成后,把離線安裝包上傳到 Linux 服務器,如下所示:
3、將安裝包解壓出來
tar -zxvf harbor-offline-installer-v2.11.1.tgz
4、修改 harbor.yml 配置文件
進入解壓后的文件夾,復制 harbor.yml.tmpl 文件,并重命名為 harbor.yml ,如下所示:
# 拷貝并重命名 cp harbor.yml.tmpl harbor.yml # 修改配置文件 vim harbor.yml
修改配置文件,需要設置hostname、端口、admin用戶的初始登錄密碼等,標紅色的表示修改的部分:
# The IP address or hostname to access admin UI and registry service. # DO NOT use localhost or 127.0.0.1, because Harbor needs to be accessed by external clients. # 修改主機名,如果沒有域名就使用本機IP地址 hostname: 192.168.4.250 # 配置啟動端口號,默認是80端口,此處我把它改成 5001 # http related config http: # port for http, default is 80. If https enabled, this port will redirect to https port port: 5001 # 如果沒有申請證書,需要把 https 這塊相關的全部給它注釋掉 # https related config # https: # https port for harbor, default is 443 # port: 443 # The path of cert and key files for nginx # certificate: /your/certificate/path # private_key: /your/private/key/path # 啟動成功后,admin用戶的初始登錄密碼 harbor_admin_password: admin123456
5、修改 docker 守護進程配置文件
vim /etc/docker/daemon.json
加上下面這一句,讓 Docker 認為該地址是安全的,這里的 “your-server-ip” 請?zhí)鎿Q為你的服務器外網(wǎng)IP地址,“port” 替換為你的端口:
{ "insecure-registries": [ "your-server-ip:port" ] }
“insecure-registries”:不安全的注冊表,用來配置 Docker 可以通過 HTTP 而非 HTTPS 連接的不安全鏡像倉庫地址,即:配置可信任地址。如果配置為0.0.0.0/0,則表示信任所有地址的所有私有倉庫。
示例:
保存成功后,重新加載配置并重啟Docker服務:
sudo systemctl daemon-reload sudo systemctl restart docker
6、啟動安裝 Harbor
配置文件修改成功后,執(zhí)行 install.sh 腳本進行安裝 Harbor
./install.sh
提示安裝成功,接下來就可以訪問 Harbor 了。通過 IP+端口 訪問:http://192.168.4.250:5001
訪問成功,由于 Harbor 是通過 Docker 管理的,所以啟動非常方便。如果首頁訪問成功說明 Docker 私有倉庫已經(jīng)部署成功了。
四、Harbor Web頁面操作說明
默認用戶名是admin,密碼是啟動時設置的密碼:admin123456
登錄成功進入主頁面,從系統(tǒng)首頁可以看到系統(tǒng)分為三個菜單:項目、日志、系統(tǒng)管理。
1、項目
項目管理顧名思義就是用來管理項目的??梢詾槊恳粋€開發(fā)項目創(chuàng)建一個私有項目庫,然后把 Docker 鏡像存儲到指定的項目中,為每個項目實現(xiàn)項目鏡像隔離。創(chuàng)建項目的時候,Harbor提供了公開庫(public repository)和私有庫(private repository)兩種類型的鏡像存儲空間。
通過詳情信息可以看到:公開庫中的鏡像是對所有用戶可見和可訪問的,任何人都可以查看和拉取其中的鏡像。而私有庫中的鏡像則需要登錄才能訪問控制,只有被授權的用戶或團隊才能夠查看、拉取和推送鏡像。 可以根據(jù)需要創(chuàng)建相關的項目。
項目創(chuàng)建成功后,可以點擊進入項目。在里面可以為每個項目單獨設置不同的配置信息。可以為每一個項目添加成員信息。
角色權限說明:
- 項目管理員(Project Administrator):擁有項目的最高權限,可以對項目進行全面管理,包括創(chuàng)建和刪除項目、管理項目成員和權限、配置項目屬性、查看項目日志等。
- 維護人員(Maintainer):類似于項目管理員,但權限稍低,通常用于協(xié)助管理項目,可以進行項目的部分管理操作,如添加和刪除鏡像、配置鏡像的復制和同步規(guī)則等。
- 開發(fā)者(Developer):具有對項目中鏡像倉庫的讀寫權限,可以拉取、推送和刪除鏡像,以及管理部分項目配置,但不能進行項目管理操作。
- 訪客(Guest):只具有對項目中鏡像倉庫的只讀權限,可以查看鏡像和元數(shù)據(jù),但無法對鏡像進行修改或刪除操作。通常用于分享項目或鏡像給外部團隊或用戶。
- 受限訪客(Restricted Guest):是一種更加受限的訪客角色,通常用于提供給外部用戶或系統(tǒng),具有對項目中鏡像倉庫的只讀權限,但可能會限制訪問的部分內容或功能。
在右上角顯示推送命令,可以通過提示命令進行 docker 鏡像推送。
2、日志
日志菜單就是記錄用戶操作日志信息的。
3、系統(tǒng)管理
系統(tǒng)管理主要用來管理 Harbor 用戶人員信息、鏡像倉庫的各種配置、權限和系統(tǒng)設置。
五、Docker命令使用私有倉庫
1、登錄
登錄私有倉庫:
docker login -u admin -p admin123456 http://192.168.4.250:5001
通過輸出可以發(fā)現(xiàn)登錄成功了。認證信息存儲在 ~/.docker/config.json 文件中,只要登錄信息存在,登錄會一直生效不需要每次推送拉取之前都登錄。
注意:如果未修改 docker 守護進程配置文件,那么登錄時可能會報以下錯誤。
[root@localhost ~]# docker login -u admin -p admin123456 http://192.168.4.250:5001 WARNING! Using --password via the CLI is insecure. Use --password-stdin. Error response from daemon: Get "https://192.168.4.250:5001/v2/": http: server gave HTTP response to HTTPS client
這是由于,docker認為這個地址是不安全的,所以需要在docker守護進程配置文件中把該地址配置為可信任地址。
vim /etc/docker/daemon.json
加上下面這一句,讓 Docker 認為該地址是安全的,這里的 “your-server-ip” 請?zhí)鎿Q為你的服務器外網(wǎng)IP地址,“port” 替換為你的端口:
{ "insecure-registries": [ "your-server-ip:port" ] }
“insecure-registries”:不安全的注冊表,用來配置 Docker 可以通過 HTTP 而非 HTTPS 連接的不安全鏡像倉庫地址,即:配置可信任地址。如果配置為0.0.0.0/0,則表示信任所有地址的所有私有倉庫。
示例:
保存成功后,重新加載配置并重啟Docker服務:
sudo systemctl daemon-reload sudo systemctl restart docker
配置成功后,再次嘗試登錄,這時候應該就可以登錄成功了。
2、推送鏡像
在項目中標記鏡像:
docker tag SOURCE_IMAGE[:TAG] 192.168.4.250:5001/blog_project/REPOSITORY[:TAG]
示例:
docker tag nginx:latest 192.168.4.250:5001/blog_project/nginx:v1
推送鏡像到指定項目:
docker push 192.168.4.250:5001/blog_project/REPOSITORY[:TAG]
示例:
docker push 192.168.4.250:5001/blog_project/nginx:v1
查看 Harbor 倉庫,推送成功。
3、拉取鏡像
通過另一臺服務器,使用 docker pull 從私有倉庫拉取鏡像:
docker pull 192.168.4.250:5001/blog_project/nginx:v1
拉取成功,查看下載數(shù),發(fā)現(xiàn)已經(jīng)更新了:
4、退出登錄
docker logout 192.168.4.250:5001
六、其他補充
首先我們需要先進入解壓后的 harbor 文件夾:
cd ./Software/ cd ./harbor/
到此這篇關于Docker中Harbor企業(yè)級鏡像倉庫的搭建與使用的文章就介紹到這了,更多相關Docker Harbor倉庫搭建內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Docker 數(shù)據(jù)卷及數(shù)據(jù)容器詳細介紹及示例
這篇文章主要介紹了Docker 數(shù)據(jù)卷及數(shù)據(jù)容器詳細介紹及示例的相關資料,Docker 很強大,不僅部署維護提高效率,docker和宿主之間的數(shù)據(jù)共享以及docker間的數(shù)據(jù)共享需要好好研究一下,需要的朋友可以參考下2016-11-11樹莓派4b ubuntu19 server 安裝docker-ce的安裝步驟
這篇文章主要介紹了樹莓派4b ubuntu19 server 安裝docker-ce的安裝步驟,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-11-11使用docker部署grafana+prometheus配置
這篇文章主要介紹了docker部署grafana+prometheus配置,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-12-12使用dockercompose搭建springboot-mysql-nginx應用
這篇文章主要介紹了使用dockercompose搭建springboot-mysql-nginx應用,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-03-03