Harbor仓库(harbor镜像仓库)

雨果网 跨境电商创业评论48字数 5300阅读17分40秒阅读模式
摘要

环境说明服务器两台: 192.168.230.103(安装harbor)​ 192.168.230.101(测试harbor)操作系统:centos7.7docker版本:2021.3.10最新版 2

环境说明

服务器两台: 192.168.230.103(安装harbor)​ 192.168.230.101(测试harbor)操作系统:centos7.7docker版本:2021.3.10最新版 20.10.12docker-compose版本:2.3.1harbor版本:2.4.1

docker安装(101、103均安装)

清理存在的docker软件

sudo yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-selinux \ docker-engine-selinux \ docker-engine

安装docker依赖

sudo yum install -y yum-utils device-mapper-persistent-data lvm2

下载docker安装所需的repo文件

sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

安装docker

yum install -y docker-ce docker-ce-cli containerd.io

启动docker

systemctl start docker

设置开机自启动

systemctl enable docker

查看是否启动成功

docker version

Harbor仓库(harbor镜像仓库)

103 上docker添加配置文件

vim /etc/docker/daemon.json 添加如下内容

{"insecure-registries":["192.168.230.103"]}

注:即使启用https后,103仍然需要配置该项内容,否则在用 docker login命令登录时会出错Error response from daemon: Get "https://harbor103.com/v2/": unauthorized: authentication required

103docker执行以下命令

systemctl daemon-reloadsystemctl restart docker

docker-compose安装(103)

到github搜docker-compose,下载最新版本即可

授权并改名

chmod +x docker-compose-Linux-x86_64mv docker-compose-Linux-x86_64 /usr/local/bin/docker-compose

查看是否生效

docker-compose version

Harbor仓库(harbor镜像仓库)

harbor安装(103)

必要条件

Harbor仓库(harbor镜像仓库)

Harbor仓库(harbor镜像仓库)

docker及docker-compose已经安装

安装openssl:yum install openssl -y

Harbor仓库(harbor镜像仓库)

修改101、103上hosts文件

echo "192.168.230.103 harbor103.com" >> /etc/hosts

注:一定要带上.com,不要使用 harbor103 这样类似hostname的配置,否则使用docker push命令时会出现向docker.io推送镜像的情况导致出现,如下所示:

[root@localhost anchors]# docker push harbor103/test-public/alpine-amd64Using default tag: latestThe push refers to repository [docker.io/harbor103/test-public/alpine-amd64]8d3ac3489996: Preparing denied: requested access to the resource is denied

后续会大量使用 harbor103.com这个域名

配置https访问harbor(103上操作)

创建存放证书的目录

mkdir -p /data/certcd /data/cert

生成证书颁发机构证书

1、生成 CA 证书私钥
openssl genrsa -out ca.key 4096

2、生成 CA 证书

openssl req -x509 -new -nodes -sha512 -days 3650 \ -subj "/C=CN/ST=Beijing/L=Beijing/O=example/OU=Personal/CN=harbor103.com" \ -key ca.key \ -out ca.crt

注:CN改为自己设置的域名

生成服务器证书

1、生成私钥
openssl genrsa -out harbor103.com.key 4096
2、生成证书签名请求 (CSR)

openssl req -sha512 -new \ -subj "/C=CN/ST=Beijing/L=Beijing/O=example/OU=Personal/CN=harbor103.com" \ -key harbor103.com.key \ -out harbor103.com.csr

3、生成 x509 v3 扩展文件

cat > v3.ext <<-EOFauthorityKeyIdentifier=keyid,issuerbasicConstraints=CA:FALSEkeyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEnciphermentextendedKeyUsage = serverAuthsubjectAltName = @alt_names[alt_names]DNS.1=harbor103.comDNS.2=harbor103DNS.3=harborEOF

注:DNS.1是域名,DNS.2是去掉com,DNS.3是hostname,本次搭建103的hostname是harbor,该内容来自官网介绍

4、使用 v3.ext 文件为您的 Harbor 主机生成证书

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

5、将 harbor103.com.crt 转换为 harbor103.com.cert,供 Docker 使用

openssl x509 -inform PEM -in harbor103.com.crt -out harbor103.com.cert

6、将服务器证书、密钥和 CA 文件复制到 Harbor 主机(103)上的 Docker 证书文件夹中

mkdir -p /etc/docker/certs.d/harbor103.com/cd /data/certcp harbor103.com.cert /etc/docker/certs.d/harbor103.com/cp harbor103.com.key /etc/docker/certs.d/harbor103.com/cp ca.crt /etc/docker/certs.d/harbor103.com/

注:/etc/docker/certs.d/harbor103.com 该目录与域名保持一致,不要随意命名

7、在操作系统级别信任证书

cp harbor103.com.crt /etc/pki/ca-trust/source/anchors/harbor103.com.crtupdate-ca-trust

8、重启docker

systemctl restart docker

安装harbor

1、下载harbor

https://github.com/goharbor/harbor/releases 找到对应版本,下载离线安装版

如:harbor-offline-installer-v2.4.1.tgz

2解压

tar -zxvf harbor-offline-installer-v2.4.1.tgz -C /opt

3修改配置

cd /opt/harborcp harbor.yml.tmpl harbor.ymlvim harbor.yml

Harbor仓库(harbor镜像仓库)

Harbor仓库(harbor镜像仓库)

注:data_volume最好使用独立的目录只保存harbor的数据

4 安装

./install.sh

Harbor仓库(harbor镜像仓库)

Harbor仓库(harbor镜像仓库)

安装成功后可以通过浏览器访问harbor ui

Harbor仓库(harbor镜像仓库)

至此,harbor安装完成

转换http和https后的操作

如果原本配置的http访问,改为https后的操作,如果是新装的,则无需操作

当修改harbor.yml文件中http和https相关参数后,执行以下命令重启(在/opt/harbor目录内执行)

./prepare # 根据 harbor.yml 配置生成docker-compose文件docker-compose down -v # 停止容器并移除存在的容器 docker-compose up -d # 启动docker容器

数据在配置文件中 data_volume 配置的有宿主机的挂载,因此数据不会丢失

但也造成另一个问题,如果修改admin密码,要通过web页面操作,修改配置文件没办法生效,除非删掉数据重新安装

其他命令

cd /opt/habordocker-compose stop # 暂停harbordocker-compose start # 启动harbor# 彻底删除harbordocker-compose down -v# 删掉harbor相关镜像,慎重docker images|grep goharbor|awk '{print $3}'|xargs docker rmi# 删掉harbor中的数据和镜像,在data_volume配置的目录中删掉所有和harbor相关的目录即可

harbor创建项目

Harbor仓库(harbor镜像仓库)

后续将从docker客户端(101)向harbor推送镜像

操作前需要先将证书发送给客户端(从103发送到101)

scp /data/cert/ca.crt root@192.168.230.101:/etc/pki/ca-trust/source/anchors/

推送镜像至harbor(101操作)

# 查看证书是否存在ls /etc/pki/ca-trust/source/anchors/ #更新证书update-ca-trust extract#重启dockersystemctl restart docker#登录docker login harbor103.com

Harbor仓库(harbor镜像仓库)

101上的docker无需配置 /etc/docker/daemon.json 中的insecure-registries参数 ,因为103已经配置https访问,而docker客户端与仓库的交互默认就是https.

登录之后就可以与仓库交互了

测试推送镜像到harbor私有仓库

# 拉取dockerhub的镜像docker pull alpine# 打标签docker tag alpine harbor103.com/test-public/alpine-amd64 # 推送docker push harbor103.com/test-public/alpine-amd64

Harbor仓库(harbor镜像仓库)

Harbor仓库(harbor镜像仓库)

可以看到已经推送成功

Harbor仓库(harbor镜像仓库)

# 拉取arm64架构镜像docker pull --platform arm64 alpinedocker tag alpine的镜像id harbor103.com/test-public/alpine-arm64 docker push harbor103.com/test-public/alpine-arm64# 构建多版本 manifest listdocker manifest create harbor103.com/test-public/alpine harbor103.com/test-public/alpine-arm64 harbor103.com/test-public/alpine-amd64# 推送manifest listdocker manifest push harbor103.com/test-public/alpine --purge

推送完成后,在harbor ui上看到如下内容

Harbor仓库(harbor镜像仓库)

之后通过命令docker pull harbor103.com/test-public/alpine拉取时会根据cpu架构不同拉取对应的镜像

关于harbor的更多使用请自行查找

参考链接

https://goharbor.io/docs/2.4.0/install-config/

https://goharbor.io/docs/2.4.0/install-config/configure-https/

https://blog.csdn.net/qq_39876923/article/details/117303719

https://www.cnblogs.com/operationhome/p/10868498.html

harbor私有仓库安装搭建-今日头条就分享到这里,想看更多harbor安装部署、harbor镜像仓库、部署harbor就www.1212sj.com。

  • Harbor仓库
  • harbor安装部署
  • harbor镜像仓库
  • 部署harbor
评论  0  访客  0
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: