成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

私有鏡像倉庫 Harbor 安裝和使用

運維
我們如果需要部署一個私有鏡像倉庫來使用,最簡單的就是 Registry ,一行命令就可以運行在 Docker 中,但功能也比較弱,如果想要私有鏡像倉庫功能更豐富些,可以使用 Harbor 。

介紹

我們如果需要部署一個私有鏡像倉庫來使用,最簡單的就是 registry ,一行命令就可以運行在 Docker 中,但功能也比較弱,如果想要私有鏡像倉庫功能更豐富些,可以使用 Harbor 。

本文簡單介紹下 Harbor 的安裝和使用。

環境

  • 服務器:CentOS 7 ,Harbor 部署在內網,通過 nginx 反向代理發布到外網使用
  • Harbor:2.9.1
  • docker:23.0.5

安裝

如果沒有安裝 wget ,先執行下面命令安裝:

yum install -y wget

下載包:

wget https://github.com/goharbor/harbor/releases/download/v2.9.1/harbor-offline-installer-v2.9.1.tgz

如果無法通過 wget 進行下載,可以直接到 Github 網站:https://github.com/goharbor/harbor/releases/ 進行下載,然后拷貝到服務器中:

執行下面命令進行解壓:

tar -xvf harbor-offline-installer-v2.9.1.tgz

執行下面命令新建目錄,并將程序文件復制到目錄中:

mkdir /opt/harbor
mv harbor/* /opt/harbor
cd /opt/harbor

修改 Harbor 配置文件:

cp -ar harbor.yml.tmpl harbor.yml
vi harbor.yml

  • hostname:如果只是內網訪問,設置為內網 IP,如果需要外網訪問,就必須設置為外網域名或 IP
  • port:Web 訪問的端口

編輯完配置文件,接下來在 harbor 目錄下安裝 Harbor。先進行預處理:

./prepare

執行下面命令進行安裝:

./install.sh

稍等一會,執行 docker-compose ps ,如果所有容器的狀態都是 healthy ,說明正常:

登錄后界面如下:

問題

1、內網不能登錄

安裝完成后,在外網使用 docker login 發現不能正常登錄,于是先進內網進行驗證,發現內網也不能登陸,提示信息如下:

[root@localhost data]# docker login 172.16.10.103:9998 Username: admin Password: Error response from daemon: Get "https://172.16.10.103:9998/v2/": http: server gave HTTP response to HTTPS client

需要將內網服務器 IP 和端口配置到 daemon.json 文件中,執行下面命令進行配置:

sudo tee /etc/docker/daemon.json <<-'EOF'
> {
> "insecure-registries":["172.16.10.103:9998"]
> }
> EOF

然后執行下面命令重啟生效:

sudo systemctl daemon-reload
sudo systemctl restart docker

再次登錄:

[root@localhost docker]# docker login 172.16.10.103:9998 Username: admin Password: WARNING! Your password will be stored unencrypted in /root/.docker/config.json. Configure a credential helper to remove this warning. See https://docs.docker.com/engine/reference/commandline/login/#credentials-store

Login Succeeded

這個不僅僅是內網,哪臺機器需要進行登錄操作,都需要進行上面的配置。

2、外網不能登錄

當內網正常后,發現外網依然不能正常登錄,提示如下:

fengwei@fengweideMBP ~ % docker login hub.fwhyy.com:1234
Username: admin Password: Error response from daemon: Get "http://hub.fwhyy.com:1234/v2/": Get "http://172.16.10.103:9998/service/token?account=admin&client_id=docker&offline_token=true&service=harbor-registry": context deadline exceeded (Client.Timeout exceeded while awaiting headers) (Client.Timeout exceeded while awaiting headers)

解決這個問題需要修改 harbor.yml 配置,將 hostname 修改為外網的 IP 或域名(不需要加端口):

將 external_url 修改為外網訪問的地址(需要加上端口):

修改完后需要重啟 Harbor,執行下面命令進行重啟:

cd /opt/harbor
./prepare
docker-compose down -v
docker-compose up -d

外網服務器的 nginx 配置如下:

server {
    listen       1234;
    server_name  hub.fwhyy.com;
    client_max_body_size 2000M;
    gzip  on;

   location / {
      proxy_pass http://172.16.10.103:9998;
      proxy_set_header Upgrade $http_upgrade;
      proxy_set_header Connection "upgrate";


      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header referer $http_referer;
      proxy_set_header X-Forwarded-Proto $scheme;
   }
   
     location /v2/ {
      proxy_pass http://172.16.10.103:9998/v2/;
      proxy_set_header Upgrade $http_upgrade;
      proxy_set_header Connection "upgrate";

      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header referer $http_referer;
      proxy_set_header X-Forwarded-Proto $scheme;
   }
   
     location /service/ {
      proxy_pass http://172.16.10.103:9998/service/;
      proxy_set_header Upgrade $http_upgrade;
      proxy_set_header Connection "upgrate";
        
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header referer $http_referer;
      proxy_set_header X-Forwarded-Proto $scheme;
   }


   error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }
}

使用

Harbor 里功能比較多,常用的有項目、用戶管理、項目定額。

  • 項目:可以針對不同的項目單獨創建,每個項目都有自己的鏡像地址
  • 用戶管理:可以維護用戶,不同的項目可以設置不同的維護人員
  • 項目定額:設置項目對應的鏡像倉庫最大空間容量

下面就按照步驟將一個鏡像推送到 Harbor 中。

在用戶管理中創建名稱為 images_admin 的用戶:

在項目中創建名稱為 fw 的項目,并添加 images_admin 為項目的維護人員:

在項目定額中設置項目的配額大小為 2GB:

先以一個 nginx 鏡像為例,直接推送試試,命令如下:

docker tag nginx:latest hub.fwhyy.com:1234/fw/nginx:latest
docker push hub.fwhyy.com:1234/fw/nginx:latest

因為沒有登錄,會提示沒有權限推送:

The push refers to repository [hub.fwhyy.com:1234/fw/nginx] b074db3b55e1: Preparing e50c68532c4a: Preparing f6ba584ca3ec: Preparing 01aaa195cdad: Preparing 2a13e6a7cca6: Preparing 370869eba6e9: Waiting 7292cf786aa8: Waiting unauthorized: unauthorized to access repository: fw/nginx, action: push: unauthorized to access repository: fw/nginx, action: push

使用下面命令進行登錄后再進行推送:

docker login hub.fwhyy.com:1234
# 輸入用戶名密碼
docker tag nginx:latest hub.fwhyy.com:1234/fw/nginx:latest
docker push hub.fwhyy.com:1234/fw/nginx:latest

登錄后,就可以正常推送了,登錄進入系統,可以看到在項目的鏡像倉庫中已經可以看到了:

責任編輯:姜華 來源: 不止dotNET
相關推薦

2017-03-24 09:24:21

HarborDocker鏡像倉庫

2022-07-11 07:37:55

HarborContainerd

2022-09-16 10:19:36

HarborContainerd

2020-09-18 07:59:44

GitLabCI

2020-08-07 17:03:24

私有鏡像倉庫

2019-08-18 23:46:52

私有云容器鏡像倉庫

2022-12-08 19:27:38

2023-03-30 07:35:55

2022-09-15 10:03:42

Jaeger分布式追蹤系統

2021-05-10 08:58:09

Harbor架構Registry 服務

2021-10-20 07:18:51

Harbor鏡像項目

2024-05-15 11:09:30

2021-07-30 06:51:28

Nginx運維web

2013-11-01 13:21:23

Dropbox

2022-05-26 08:38:10

Docker鏡像運維

2023-02-13 23:52:18

2019-01-08 10:12:12

GitHub私有倉庫存儲庫

2023-09-16 19:38:17

Python私有屬性私有方法

2011-08-09 10:20:55

GitLinux遠程倉庫

2025-02-26 12:21:08

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲精品久 | 亚洲精品一区二三区不卡 | 亚洲国产精品久久 | 国产高清在线精品 | 男女爱爱福利视频 | 久久99精品国产 | 国产99久久久国产精品 | www视频在线观看 | 午夜精品一区二区三区在线观看 | 欧美视频在线观看 | 午夜欧美| 97国产精品视频 | 亚洲精品白浆高清久久久久久 | 午夜网| 日韩视频在线一区 | 亚洲 自拍 另类 欧美 丝袜 | 三级av免费 | 91精品国产综合久久福利软件 | 毛片免费看 | 天天爽夜夜骑 | 狠狠操狠狠操 | 欧美黑人又粗大 | 亚洲三区在线观看 | 日韩欧美精品 | 在线视频一区二区三区 | 精品亚洲一区二区三区 | 国产中文在线观看 | 欧美精品一区二区三区四区五区 | 成年视频在线观看 | 欧美一级二级三级 | 国产精品色av | 日本免费黄色一级片 | 亚洲区一区二区 | 欧美不卡一区二区三区 | 国产精品无码久久久久 | 久久av一区 | 国产精品久久久久久久免费观看 | 国产传媒 | 中文字幕一区二区三区精彩视频 | 天天干夜夜操 | 亚洲最大成人综合 |