Harbor私有镜像仓库的搭建与镜像上传拉取操作

目录

一、实验环境简介

1.网络配置

2.关闭SELINUX并禁用防火墙

二、配置docker仓库并安装docker compose相关命令

1.配置仓库

2.安装docker、docker compose

三、Harbor的安装

1.下载安装包

2.预先配置harbor通信需要使用的tsl证书

2.1 生成证书颁发机构证书

        1. 生成 CA 证书私有密钥。

        2. 生成 CA 证书。

2.2 生成服务器证书

1. 生成私钥。

2. 生成证书签名请求 (CSR)。

3. 生成 x509 v3 扩展文件。

4. 使用该文件为您的 Harbor 主机生成证书。

2.3 向 Harbor 和 Docker 提供证书

1. 将服务器证书和密钥复制到 Harbor 主机上的 /data/cert 文件夹中。

2. 将crt转换为cert ,以供 Docker 使用。

3. 将服务器证书、密钥和 CA 文件复制到 Harbor 主机上的 Docker 证书文件夹中。您必须先创建相应的文件夹。

4. 重新启动 Docker Engine。

3.部署或重新配置 Harbor

3.1 解压harbor安装包。

3.2 harbor.yml 需要进行的修改。

3.3 common.sh需要进行的修改。

3.4 install.sh需要进行的修改。

3.5 安装构建Habor

3.6 从Docker 客户端登录 Harbor。

四、测试推送拉取镜像

1.推送镜像

1.1 更改镜像标签

1.2 推送镜像

1.3 拉取镜像

五、启动和停止


一、实验环境简介

  1. 使用独立主机部署harbor
  2. 使用docker compose 完成harbor部署
  3. 后期使用harbor 中的镜像来部署应用

1.网络配置

  • ip地址:192.168.110.100/24
  • 网关:192.168.110.2
  • DNS:114.114.114.114
  • 主机名:harbor.mydomain.com

2.关闭SELINUX并禁用防火墙

二、配置docker仓库并安装docker compose相关命令

1.配置仓库

[root@harbor ~]# cat /etc/yum.repos.d/docker-ce.repo
[docker-ce-stable]
name=Docker CE Stable - $basearch
baseurl=https://download.docker.com/linux/centos/$releasever/$basearch/stable
enabled=1
gpgcheck=1
gpgkey=https://download.docker.com/linux/centos/gpg

2.安装docker、docker compose

[root@harbor ~]# yum remove podman -y
[root@harbor ~]# yum -y install docker-ce docker-ce-cli docker-buildx-plugin  docker-compose-plugin
[root@harbor ~]# systemctl enable --now docker

三、Harbor的安装

1.下载安装包

可以提前下载好然后上传

wget https://github.com/goharbor/harbor/releases/download/v1.10.19/harbor-offline-installer-v1.10.19.tgz

2.预先配置harbor通信需要使用的tsl证书

2.1 生成证书颁发机构证书

在生产环境中,您应该从 CA 获取证书。在测试或开发环境中,您可以生成自己的 CA。要生成 CA 证书,请运行以下命令。

        1. 生成 CA 证书私有密钥。
[root@harbor certs]# openssl genrsa -out ca.key 4096
        2. 生成 CA 证书。
[root@harbor certs]# openssl req -x509 -new -nodes -sha512 -days 3650 \
>  -subj "/C=CN/ST=Beijing/L=Beijing/O=example/OU=Personal/CN=MyPersonal Root CA" \
> -key ca.key \
> -out ca.crt
2.2 生成服务器证书
1. 生成私钥。
[root@harbor certs]# openssl genrsa -out harbor.mydomain.com.key 4096

 

2. 生成证书签名请求 (CSR)。
[root@harbor certs]# openssl req -sha512 -new \
> -key harbor.mydomain.com.key \
> -out harbor.mydomain.com.csr \
> -subj "/C=CN/ST=Beijing/L=Beijing/O=example/OU=Personal/CN=harbor.mydomain.com"
3. 生成 x509 v3 扩展文件。

无论您是使用 FQDN 还是 IP 地址连接到 Harbor 主机,都必须创建此文件,以便为 Harbor 主机生成符合使用者备用名称 (SAN) 和 x509 v3 扩展要求的证书。

[root@harbor certs]# vim v3.ext
[root@harbor certs]# cat v3.ext
authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
extendedKeyUsage = serverAuth
subjectAltName = @alt_names

[alt_names]
DNS.1=harbor.mydomain.com
DNS.2=mydomain.com
DNS.3=harbor
4. 使用该文件为您的 Harbor 主机生成证书。
[root@harbor certs]# openssl x509 -req -sha512 -days 3650 \
> -extfile v3.ext \
> -CA ca.crt -CAkey ca.key -CAcreateserial \
> -in harbor.mydomain.com.csr \
> -out harbor.mydomain.com.crt
2.3 向 Harbor 和 Docker 提供证书

生成 ca.crt、harbor.mydomain.com.crt和harbor.mydomain.com.key文件后,您必须将它们提供给 Harbor 和 Docker,然后重新配置 Harbor 以使用它们。

[root@harbor ~]# mkdir /data/certs -p

[root@harbor ~]# cd /data/certs/

1. 将服务器证书和密钥复制到 Harbor 主机上的 /data/cert 文件夹中。
cp harbor.mydomain.com.crt /data/certs/
cp harbor.mydomain.com.key /data/certs/

 

2. 将crt转换为cert ,以供 Docker 使用。

Docker 守护程序将.crt文件解释为 CA 证书,将.cert文件解释为客户端证书。

[root@harbor certs]# openssl x509 -inform PEM \
> -in harbor.mydomain.com.crt \
> -out harbor.mydomain.com.cert

 

3. 将服务器证书、密钥和 CA 文件复制到 Harbor 主机上的 Docker 证书文件夹中。您必须先创建相应的文件夹。
[root@harbor certs]# mkdir /etc/docker/certs.d/harbor.mydomain.com -p
[root@harbor certs]# cp ca.crt /etc/docker/certs.d/harbor.mydomain.com/
[root@harbor certs]# cp harbor.mydomain.com.cert /etc/docker/certs.d/harbor.mydomain.com/
[root@harbor certs]# cp harbor.mydomain.com.key /etc/docker/certs.d/harbor.mydomain.com/

 

4. 重新启动 Docker Engine。
[root@harbor certs]# systemctl restart docker

此时docker 就可以使用加密证书与harbor进行通信

3.部署或重新配置 Harbor

3.1 解压harbor安装包。
[root@harbor ~]# tar -zxf harbor-offline-installer-v1.10.19.tgz -C /usr/src/
[root@harbor ~]# cd /usr/src/harbor/
[root@harbor harbor]# ls
common.sh  harbor.v1.10.19.tar.gz  harbor.yml  install.sh  LICENSE  prepare
[root@harbor harbor]# cp harbor.yml harbor-install-config.bak
3.2 harbor.yml 需要进行的修改。

3.3 common.sh需要进行的修改。

3.4 install.sh需要进行的修改。

3.5 安装构建Habor

[root@harbor harbor]# sudo ./install.sh

提示启动完成后,打开浏览器输入harbor仓库地址进行访问:

使用默认管理员用户以及密码登录

admin: Harbor12345

登录后选择新建项目,设置项目为非公开项目

3.6 从Docker 客户端登录 Harbor。
[root@harbor harbor]# docker login harbor.mydomain.com
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/#credential-stores

Login Succeeded

[root@harbor harbor]# ls ~/.docker/
config.json
[root@harbor harbor]# cat ~/.docker/config.json
{
        "auths": {
                "harbor.mydomain.com": {
                        "auth": "YWRtaW46SGFyYm9yMTIzNDU="
                }
        }
}

 

四、测试推送拉取镜像

1.推送镜像

1.1 更改镜像标签

注意需要推送到harbor仓库的镜像命令格式harbor主机地址or 主机名/harbor内仓库名/镜像名:标签

[root@harbor harbor]# docker tag goharbor/clair-adapter-photon:v1.10.19 \
harbor.mydomain.com/myproject/clair-adapter-photon:v1.10.19
1.2 推送镜像
[root@harbor harbor]# docker push harbor.mydomain.com/myproject/clair-adapter-photon:v1.10.19

在浏览器中查看上传的镜像

注意:这里出错原因可能是web界面Harbor没有myproject这个项目!

1.3 拉取镜像

先删除已有的镜像

[root@harbor harbor]# docker rmi harbor.mydomain.com/myproject/clair-adapter-photon:v1.10.19

拉取

[root@harbor harbor]# docker pull harbor.mydomain.com/myproject/clair-adapter-photon:v1.10.19

验证是否拉取成功

[root@harbor harbor]# docker images

五、启动和停止

对于harbor的启动和停止,通过docker cmpose 控制,最好在harbor的解压目录下执行,

  • 启动命令: docker compose up -d
  • 停止命令: docker compose down
  • 状态检查: docker compose stats

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值