最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

docker自建GitLab倉庫的實(shí)現(xiàn)

 更新時(shí)間:2024年07月10日 10:45:01   作者:小碼快撩  
Harbor是一個(gè)用于存儲(chǔ)和分發(fā)Docker鏡像的企業(yè)級(jí)Registry服務(wù)器,本文主要介紹了docker自建GitLab倉庫的實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下

Harbor是一個(gè)用于存儲(chǔ)和分發(fā)Docker鏡像的企業(yè)級(jí)Registry服務(wù)器,雖然Docker官方也提供了公共的鏡像倉庫,但是從安全和效率等方面考慮,
部署企業(yè)內(nèi)部的私有環(huán)境Registry是非常必要的,Harbor和docker中央倉庫的關(guān)系,就類似于nexus和Maven中央倉庫的關(guān)系,Harbor除了存儲(chǔ)和分發(fā)鏡像外還具有用戶管理,項(xiàng)目管理,配置管理和日志查詢,高可用部署等主要功能。

準(zhǔn)備內(nèi)容

為了方便理解,使用的機(jī)器內(nèi)網(wǎng)IP為1.1.1.1,外網(wǎng)IP為2.2.2.2

1. 獲取Harbor離線安裝包

通過github獲取離線安裝包,地址:https://github.com/goharbor/harbor/releases
可以根據(jù)自己的需要下載自己需要的release版本,這里使用的是v2.10.0,下載對(duì)應(yīng)的離線安裝包harbor-offline-installer-v2.10.0.tgz

2. 下載docker-compose并安裝

參考網(wǎng)址:http://m.fzitv.net/server/320623e4s.htm

部署docker環(huán)境,為了方便采用命令安裝 pip3的方式安裝docker-compose

安裝Harbor

本篇的安裝目錄在/data/harbor目錄下,docker卷映射宿主機(jī)位置在/data/volumes/下

解壓harbor離線文件

如果目錄不存在,則創(chuàng)建目錄  mkdir -p /data/harbor
cd /data/harbor   
# 上傳包

# 解壓
tar -zxvf harbor-offline-installer-v2.10.0.tgz

# 復(fù)制一份配置文件
cd harbor
cp harbor.yml.tmpl harbor.yml

# 編輯配置文件
vim harbor.yml

1. 部署http訪問模式

編輯配置文件的以下內(nèi)容

# 修改成你的ip,填寫外網(wǎng)ip地址或者域名
# 填寫內(nèi)網(wǎng)ip有個(gè)問題就是頁面能通過外網(wǎng)ip進(jìn)入管理控制臺(tái),但是無法通過外網(wǎng)ip使用docker login或者docker push等操作
hostname: 2.2.2.2

# 修改端口號(hào),由于端口限制,不建議使用80端口
http:
  port: 7080

# 如果不需要https,請(qǐng)注釋掉https相關(guān)
#https:
#  port: 443
#  certificate: /your/certificate/path
#  private_key: /your/private/key/path

# 配置密碼,將 Harbor12345換成你自己的密碼,建議使用復(fù)雜一點(diǎn)的密碼
harbor_admin_password: Harbor12345

# 數(shù)據(jù)映射到宿主機(jī)的位置
data_volume: /data/volumes/harbor/

log:
  local:
    # 日志存放到宿主機(jī)的位置
    location: /data/logs/harbor

啟動(dòng)harbor

./install.sh

可以通過docker ps查看各個(gè)組件是否啟動(dòng)完成,啟動(dòng)完成后,就可以通過你配置的IP + PORT訪問Harbor了,這里有個(gè)小坑,因?yàn)閔arbor本身依賴redis和nginx,如果你本機(jī)已經(jīng)跑著名稱為nginx和redis的容器,啟動(dòng)會(huì)報(bào)錯(cuò),需要先將自己的redis或者nginx容器重命名才能啟動(dòng)成功。如果不需要開啟https的話,可以宣布游戲結(jié)束了。

Harbor常用命令

# 啟動(dòng)harbor
docker-compose up -d

# 關(guān)閉harbor
docker-compose down

2. 部署支持https協(xié)議訪問

因?yàn)镠arbor要配合天翼云或者K8S一起使用,集群訪問Harbor只支持https,所以要重新配置一下。

2.1 修改openss的配置(可先跳過)

這配置可以先跳過,遇到問題之后再回來配置。因?yàn)槲疫@兒配置的是內(nèi)網(wǎng)ip,但是v3.ext文件配置的外網(wǎng)ip,所以可以先跳過。

可能遇到問題點(diǎn):制作證書前需要設(shè)置openss的配置文件,在[ v3_ca ] 下添加subjectAltName = IP:1.1.1.1,否則做出來的證書使用docker登錄會(huì)報(bào):x509: cannot validate certificate for 1.1.1.1 because it doesn’t contain any IP SANs 錯(cuò)誤。這里1.1.1.1需要替換成harbor所在機(jī)器的ip

vim /etc/pki/tls/openssl.cnf

在[ v3_ca ]下添加以下內(nèi)容,ip替換成harbor機(jī)器所在ip

subjectAltName = IP:1.1.1.1

2.2 制作證書

生成CA證書私鑰和CA證書

# 切換到harbor證書所在的目錄,可以自己創(chuàng)建目錄,和后面配置對(duì)上就好
mkdir -p /data/harbor/cert
cd /data/harbor/cert

# 執(zhí)行證書命令
openssl req \
-newkey rsa:4096 -nodes -sha256 -keyout ca.key \
-x509 -days 3650 -out ca.crt \
-subj "/C=CN/ST=Guangdong/L=Shenzhen/O=CMIT/OU=JSZX/CN=2.2.2.2/emailAddress=guyougao@****.com"

說明:C=CN(國(guó)家),ST=Guangdong(省份),L=Shenzhen(城市),O=NETSION(公司),OU=IT(部門),CN=2.2.2.2(IP,harbor的ip),emailAddress=XXX@XXX.com(換成你自己的郵箱,或者隨便填)
執(zhí)行完后,會(huì)得到兩個(gè)文件ca.crt和ca.key

生成服務(wù)器證書

# 私鑰
openssl genrsa -out 2.2.2.2.key 4096

openssl req -sha512 -new -subj "/C=CN/ST=Guangdong/L=Shenzhen/O=CMIT/OU=JSZX/CN=2.2.2.2/emailAddress=guyougao@****.com" -key 2.2.2.2.key -out 2.2.2.2.csr

生成一個(gè)使用ip進(jìn)行訪問的x509 v3擴(kuò)展文件

cat > v3.ext <<-EOF
authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
extendedKeyUsage = serverAuth
subjectAltName = IP:2.2.2.2
EOF

使用剛才生成的v3.ext生成Harbor主機(jī)證書

openssl x509 -req -sha512 -days 3650 \
    -extfile v3.ext \
    -CA ca.crt -CAkey ca.key -CAcreateserial \
    -in 2.2.2.2.csr \
    -out 2.2.2.2.crt

轉(zhuǎn)換2.2.2.2.crt為2.2.2.2.cert,供Docker使用,Docker守護(hù)程序?qū)?crt文件解釋為CA證書,并將.cert文件解釋為客戶端證書

openssl x509 -inform PEM -in 2.2.2.2.crt -out 2.2.2.2.cert

到這里我們已經(jīng)生成了一堆證書了

[root@ecs-debug-service cert]# ls
2.2.2.2.cert  2.2.2.2.crt  2.2.2.2.csr  2.2.2.2.key  ca.crt  ca.key  ca.srl  v3.ext

2.3 使用證書

# 編輯配置文件
cd /data/harbor/harbor
vim harbor.yml

主要修改以下內(nèi)容,端口默認(rèn)443,certificate和private_key替換成你自己的證書路徑

# 修改成你的ip,填寫外網(wǎng)ip地址或者域名
# 填寫內(nèi)網(wǎng)ip有個(gè)問題就是頁面能通過外網(wǎng)ip進(jìn)入管理控制臺(tái),但是無法通過外網(wǎng)ip使用docker login或者docker push等操作
hostname: 2.2.2.2

# 修改端口號(hào),由于端口限制,不建議使用80端口
http:
  port: 7080

# 如果不需要https,請(qǐng)注釋掉https相關(guān)
https:
# 修改端口號(hào),由于端口限制,不建議使用443端口
  port: 7443
  certificate: /data/harbor/cert/2.2.2.2.crt
  private_key: /data/harbor/cert/2.2.2.2.key

# 配置密碼,將 Harbor12345換成你自己的密碼,建議使用復(fù)雜一點(diǎn)的密碼
harbor_admin_password: Harbor12345

# 數(shù)據(jù)映射到宿主機(jī)的位置
data_volume: /data/volumes/harbor/

log:
  local:
    # 日志存放到宿主機(jī)的位置
    location: /data/logs/harbor

將服務(wù)器證書,密鑰和CA文件復(fù)制到Harbor主機(jī)上的Docker證書文件夾中

mkdir -p /etc/docker/certs.d/2.2.2.2:7443
cp 2.2.2.2.cert 2.2.2.2.key ca.crt /etc/docker/certs.d/2.2.2.2:7443

這里文件夾的命名是有規(guī)則限定的,/etc/docker/certs.d/yourdomain.com:port或/etc/docker/certs.d/harbor_IP:port,yourdomain.com,harbor_IP根據(jù)自己的情況填寫harbor域名或者ip,因?yàn)槲疫@里使用的時(shí)ip訪問,所以配置的是ip,port為你配置的https端口,如果是默認(rèn)的443可以不填寫端口,如果你使用的是非默認(rèn)值,文件夾名稱請(qǐng)加上端口號(hào)且需要和harbor.yml配置的https端口對(duì)應(yīng)上

2.4 重啟docker與harbor

# 關(guān)閉harbor
docker-compose down -v

# 重啟docker
service docker restart

# 重新配置
./prepare

# 啟動(dòng)
./install.sh

ps:我看到網(wǎng)上有些教程在執(zhí)行./prepare之后直接docker-compose -d就可以了。但是我發(fā)現(xiàn)我執(zhí)行的時(shí)候報(bào)錯(cuò)了,docker ps -a發(fā)現(xiàn)之前相關(guān)的容器全部沒有了,所以就直接在./install了一次

2.5 驗(yàn)證https

頁面訪問我們的http端口7080,發(fā)現(xiàn)已經(jīng)可以自動(dòng)跳轉(zhuǎn)到https端口7443了

訪問地址:2.2.2.2:7443

使用admin,密碼使用之前在配置文件中配置的密碼,默認(rèn)Harbor12345,登錄成功后便看到了harbor清爽的界面

本機(jī)docker推送鏡像到harbor中

# 隨后輸入密碼
docker login https://2.2.2.2:7443 -u admin

# 拉一個(gè)鏡像
docker pull mongo

# tag鏡像
docker tag mongo:latest 2.2.2.2:7443/library/mongo:latest

# 推送鏡像
docker psuh 2.2.2.2:7443/library/mongo:latest

問題點(diǎn)總結(jié)

通過測(cè)試發(fā)現(xiàn)有如下問題,暫時(shí)沒解決內(nèi)網(wǎng)和外網(wǎng)無差別訪問的問題點(diǎn)。有經(jīng)驗(yàn)的可以一起交流一下,解決當(dāng)前存在的問題

1. docker login報(bào)錯(cuò)

WARNING! Using --password via the CLI is insecure. Use --password-stdin.
Error response from daemon: Get "https://2.2.2.2:7443/v2/": tls: failed to verify certificate: x509: certificate signed by unknown authority

需要daemon.json文件配置

"insecure-registries":["2.2.2.2:7443"]

2. 內(nèi)網(wǎng)ip推送鏡像

docker push 1.1.1.1:7443/ctos-dev/mongo

Using default tag: latest
The push refers to repository [1.1.1.1:7443/ctos-dev/mongo]
1434daed1bc0: Retrying in 1 second 
725f3f03e847: Retrying in 1 second 

會(huì)一直重試,無法push到harbor倉庫

3. 通過外ip,http協(xié)議端口推送

[root@ecs-debug-service harbor]# docker push 2.2.2.2:7080/ctos-dev/mongo:latest
The push refers to repository [2.2.2.2:7080/ctos-dev/mongo]
Get "https://2.2.2.2:7080/v2/": http: server gave HTTP response to HTTPS client

也是無法推送

4. 為了方便使用,所以hostname配置外網(wǎng)或者域名地址

到此這篇關(guān)于docker自建GitLab倉庫的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)docker自建GitLab倉庫內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 解決Docker必須使用sudo操作的問題

    解決Docker必須使用sudo操作的問題

    這篇文章主要介紹了解決Docker必須使用sudo操作的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2021-03-03
  • Docker官方鏡像Tomcat 無法訪問解決方案

    Docker官方鏡像Tomcat 無法訪問解決方案

    當(dāng)使用docker pull tomcat下載的鏡像運(yùn)行時(shí),遇到無法訪問Tomcat服務(wù)的問題,原因是存在兩個(gè)webapps目錄,本文就來詳細(xì)的介紹一下解決方法,感興趣的可以了解一下
    2025-10-10
  • 遷移docker鏡像到新服務(wù)器的具體操作流程

    遷移docker鏡像到新服務(wù)器的具體操作流程

    在日常工作中,我們有時(shí)會(huì)需要將服務(wù)器A上的鏡像上傳至服務(wù)器B上,這篇文章主要介紹了遷移docker鏡像到新服務(wù)器的具體操作流程,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2025-07-07
  • 查看和更改Docker容器IP地址的操作指南

    查看和更改Docker容器IP地址的操作指南

    Docker 提供了靈活的網(wǎng)絡(luò)配置能力,允許用戶查看和更改容器的 IP 地址,這在構(gòu)建微服務(wù)架構(gòu)、進(jìn)行網(wǎng)絡(luò)調(diào)試、或需要對(duì)網(wǎng)絡(luò)流量進(jìn)行精細(xì)控制時(shí)尤為重要,本文將詳細(xì)介紹如何查看和更改 Docker 容器的 IP 地址,需要的朋友可以參考下
    2025-09-09
  • Docker容器輸入漢字觸發(fā)自動(dòng)補(bǔ)全問題

    Docker容器輸入漢字觸發(fā)自動(dòng)補(bǔ)全問題

    Linux系統(tǒng)中,當(dāng)終端出現(xiàn)中文亂碼通常是由于缺少中文字符集和字體,安裝中文字體和設(shè)置合適的字符集zh_CN.utf8,可以有效解決這一問題,首先,通過查看系統(tǒng)支持的字符集了解是否支持中文,然后安裝相應(yīng)字符集,其次,查看并設(shè)置當(dāng)前系統(tǒng)字符集
    2024-10-10
  • 詳解Docker學(xué)習(xí)筆記之搭建一個(gè)JAVA Tomcat運(yùn)行環(huán)境

    詳解Docker學(xué)習(xí)筆記之搭建一個(gè)JAVA Tomcat運(yùn)行環(huán)境

    本篇文章主要介紹了詳解Docker學(xué)習(xí)筆記之搭建一個(gè)JAVA Tomcat運(yùn)行環(huán)境,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-02-02
  • 檢查docker和docker compose是否已經(jīng)安裝的方式

    檢查docker和docker compose是否已經(jīng)安裝的方式

    這篇文章主要介紹了檢查docker和docker compose是否已經(jīng)安裝的方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2025-06-06
  • Docker容器處于Removal in process無法刪除問題及解決

    Docker容器處于Removal in process無法刪除問題及解決

    這篇文章主要介紹了Docker容器處于Removal in process無法刪除問題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。
    2023-07-07
  • Linux環(huán)境docker部署Firefox結(jié)合內(nèi)網(wǎng)穿透遠(yuǎn)程使用瀏覽器測(cè)試的示例詳解

    Linux環(huán)境docker部署Firefox結(jié)合內(nèi)網(wǎng)穿透遠(yuǎn)程使用瀏覽器測(cè)試的示例詳解

    在Docker中打開Firefox意味著我們將在一個(gè)Docker容器中運(yùn)行Firefox瀏覽器,這對(duì)于一些特殊的測(cè)試場(chǎng)景非常有用,例如需要在不同版本的瀏覽器中進(jìn)行測(cè)試,下面是一個(gè)簡(jiǎn)單的示例,演示如何在Docker中打開Firefox,感興趣的朋友跟隨小編一起看看吧
    2024-08-08
  • Docker構(gòu)建Jar鏡像的方法實(shí)現(xiàn)

    Docker構(gòu)建Jar鏡像的方法實(shí)現(xiàn)

    本文主要介紹了Docker構(gòu)建Jar鏡像的方法實(shí)現(xiàn),主要包括編寫Dockerfile、構(gòu)建鏡像、測(cè)試鏡像等操作,具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-10-10

最新評(píng)論

南城县| 宕昌县| 奉节县| 永年县| 长葛市| 瑞安市| 石阡县| 南木林县| 天等县| 洞口县| 南和县| 江西省| 新乡市| 连州市| 汶川县| 彰化市| 永州市| 措美县| 准格尔旗| 梁河县| 安远县| 泸州市| 托克逊县| 吴川市| 修文县| 临江市| 南汇区| 徐水县| 林周县| 嘉祥县| 旬阳县| 郑州市| 禹城市| 普陀区| 安远县| 金昌市| 修武县| 沙雅县| 通渭县| 齐河县| 建阳市|