亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

docker自建GitLab倉(cāng)庫(kù)的實(shí)現(xiàn)

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

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

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

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

1. 獲取Harbor離線安裝包

通過(guò)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://chabaoo.cn/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訪問(wèn)模式

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

# 修改成你的ip,填寫(xiě)外網(wǎng)ip地址或者域名
# 填寫(xiě)內(nèi)網(wǎng)ip有個(gè)問(wèn)題就是頁(yè)面能通過(guò)外網(wǎng)ip進(jìn)入管理控制臺(tái),但是無(wú)法通過(guò)外網(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

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

Harbor常用命令

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

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

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

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

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

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

可能遇到問(wèn)題點(diǎn):制作證書(shū)前需要設(shè)置openss的配置文件,在[ v3_ca ] 下添加subjectAltName = IP:1.1.1.1,否則做出來(lái)的證書(shū)使用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 制作證書(shū)

生成CA證書(shū)私鑰和CA證書(shū)

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

# 執(zhí)行證書(shū)命令
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"

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

生成服務(wù)器證書(shū)

# 私鑰
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)行訪問(wè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ī)證書(shū)

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證書(shū),并將.cert文件解釋為客戶端證書(shū)

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

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

[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 使用證書(shū)

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

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

# 修改成你的ip,填寫(xiě)外網(wǎng)ip地址或者域名
# 填寫(xiě)內(nèi)網(wǎng)ip有個(gè)問(wèn)題就是頁(yè)面能通過(guò)外網(wǎng)ip進(jìn)入管理控制臺(tái),但是無(wú)法通過(guò)外網(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ù)器證書(shū),密鑰和CA文件復(fù)制到Harbor主機(jī)上的Docker證書(shū)文件夾中

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ù)自己的情況填寫(xiě)harbor域名或者ip,因?yàn)槲疫@里使用的時(shí)ip訪問(wèn),所以配置的是ip,port為你配置的https端口,如果是默認(rèn)的443可以不填寫(xiě)端口,如果你使用的是非默認(rèn)值,文件夾名稱(chēng)請(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)的容器全部沒(méi)有了,所以就直接在./install了一次

2.5 驗(yàn)證https

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

訪問(wèn)地址: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

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

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

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ì)一直重試,無(wú)法push到harbor倉(cāng)庫(kù)

3. 通過(guò)外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

也是無(wú)法推送

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

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

相關(guān)文章

  • Docker Alpine鏡像時(shí)區(qū)問(wèn)題完美解決方案

    Docker Alpine鏡像時(shí)區(qū)問(wèn)題完美解決方案

    這篇文章主要介紹了Docker Alpine鏡像時(shí)區(qū)問(wèn)題完美解決方案,本文給大家分享兩種解決方案供大家參考,需要的朋友可以參考下
    2021-04-04
  • 使用portainer連接遠(yuǎn)程docker的教程

    使用portainer連接遠(yuǎn)程docker的教程

    Portainer是一個(gè)輕量級(jí)的docker環(huán)境管理UI,可以用來(lái)管理docker宿主機(jī)和docker swarm集群,這篇文章主要介紹了使用portainer連接遠(yuǎn)程docker的方法,需要的朋友可以參考下
    2020-03-03
  • docker沒(méi)有錯(cuò)誤日志,鏡像服務(wù)卻啟動(dòng)不成功的問(wèn)題以及排查方式

    docker沒(méi)有錯(cuò)誤日志,鏡像服務(wù)卻啟動(dòng)不成功的問(wèn)題以及排查方式

    這篇文章主要介紹了docker沒(méi)有錯(cuò)誤日志,鏡像服務(wù)卻啟動(dòng)不成功的問(wèn)題以及排查方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-05-05
  • Docker安裝pypiserver私服的方法步驟

    Docker安裝pypiserver私服的方法步驟

    本文主要介紹了Docker安裝pypiserver私服的方法步驟,通過(guò)Docker安裝,可以方便地創(chuàng)建私有包倉(cāng)庫(kù),具有一定的參考價(jià)值,感興趣的可以了解一下
    2025-03-03
  • Linux 離線安裝docker的過(guò)程(一鍵式安裝)

    Linux 離線安裝docker的過(guò)程(一鍵式安裝)

    這篇文章主要介紹了Linux 離線安裝docker(一鍵式安裝)的方法,非常簡(jiǎn)單,具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-08-08
  • Docker常見(jiàn)命令介紹

    Docker常見(jiàn)命令介紹

    這篇文章介紹了Docker中的常見(jiàn)命令,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-03-03
  • 詳解給Ocelot做一個(gè)Docker鏡像

    詳解給Ocelot做一個(gè)Docker鏡像

    這篇文章主要介紹了詳解給Ocelot做一個(gè)Docker鏡像,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-04-04
  • 使用Docker Compose搭建 Confluence的教程

    使用Docker Compose搭建 Confluence的教程

    本文將介紹如何使用 Docker Compose 快速搭建 Confluence 、以及如何和 Traefik 一同使用,如果你看過(guò)之前的內(nèi)容,跟隨本文應(yīng)該能在十分鐘內(nèi)解決戰(zhàn)斗,感興趣的朋友快來(lái)看看吧
    2021-06-06
  • docker start啟動(dòng)容器后仍然exit狀態(tài)的解決

    docker start啟動(dòng)容器后仍然exit狀態(tài)的解決

    這篇文章主要介紹了docker start啟動(dòng)容器后仍然exit狀態(tài)的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-06-06
  • docker部署應(yīng)用的三種方式

    docker部署應(yīng)用的三種方式

    越來(lái)越多的前端團(tuán)隊(duì)選擇用Docker部署前端項(xiàng)目,本文主要介紹了docker部署應(yīng)用的三種方式,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-03-03

最新評(píng)論