http与https两种方式部署harbor私有仓库

简单介绍:

私有镜像仓库优点

节省网络带宽,针对于每个镜像不用每个人都去网络仓库上面去下载,只需要从私有仓库中下载即可;

提供镜像资源利用,针对于公司内部使用的镜像,推送到本地私有仓库中,以供公司内部相关人员使用。

Dokcer Compose

docker-compose是用于定义和运行多容器  Docker 应用程序的工具。Harbor的每个组件都是以Docker容器的形式构建的,所以使用Docker Compose来对它进行部署。

http方式部署harbor

配置步骤

第一步:配置yum源,可以用国内阿里或者华为源

wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo

第二步:准备安装harbor仓库所需软件

安装docker-compose   (官网下载地址:https://github.com/docker/compose/releases/)

这里我是用的是自己下载好的包上传到机器,官网下载太慢,应该来说国内访问国外服务器慢是通病

[root@harbor ~]# mv docker-compose-linux-x86_64  /usr/local/bin/docker-compose

[root@harbor ~]# chmod +x /usr/local/bin/docker-compose

第三步:安装docker-ce  并设置开机自启动 (配置相关docker yum源即可下载,可以使用华为或者阿里docker源)

[root@harbor harbor]# wget -O /etc/yum.repos.d/docker-ce.repo https://repo.huaweicloud.com/docker-ce/linux/centos/docker-ce.repo

[root@harbor harbor]# sudo sed -i 's+download.docker.com+repo.huaweicloud.com/docker-ce+' /etc/yum.repos.d/docker-ce.repo

[root@harbor ~]# yum -y install docker-ce

[root@harbor ~]# systemctl  enable  docker --now

第四步:harbor主机开机路由转发

[root@harbor ~]# echo 'net.ipv4.ip_forward = 1' >> /etc/sysctl.conf

[root@harbor ~]# sysctl -p

第五步: 安装配置harbor

官网下载地址:https://github.com/goharbor/harbor/releases

这里我是用的是已经下载好的包上传到机器,官网下载太慢

[root@harbor harbor]# tar -xf harbor-offline-installer-v2.2.3.tgz -C /usr/local/

[root@harbor harbor]# cd /usr/local/harbor

修改配置文件

[root@harbor harbor]# cp harbor.yml.tmpl harbor.yml #拷贝harbor配置文件

[root@harbor harbor]# vim harbor.yml

 hostname: 192.168.1.12            #访问harbor管理界面的地址,改为本机IP地址

#以下配置加上注释,否则需要证书

#https: #加上注释

# https port for harbor, default is 443

#port: 443 #加上注释

# The path of cert and key files for nginx

#certificate: /your/certificate/path #加上注释

#private_key: /your/private/key/path #加上注释

安装harbor

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

[root@harbor harbor]# ss -antpu | grep 80

访问Harbor界面(http://主机ip地址:80),用户名:admin 密码:Harbor12345

 

第六步: 使用其他主机作为harbor客户端测试拉取与推送

使用k8s 的master主机用于测试上传和下载;当然使用其他主机作为测试也行,只要安装docker并修改配置文件如下就行

(此时的master已经安装docker-ce软件并配置docker启动为systemd如下)

master主机安装docker-ce软件包,更改配置文件

[root@master ~]# yum -y install docker-ce

[root@matser ~]# systemctl enable  docker --now

[root@master ~]# vim /etc/docker/daemon.json

{

"exec-opts": ["native.cgroupdriver=systemd"], "

registry-mirrors": ["https://xxxx.mirror.aliyuncs.com"], "insecure-registries":["192.168.1.12:80"]

}

[root@master ~]# systemctl restart          docker

[root@master ~]# docker  login http://192.168.1.12:80 #测试登录Harbor镜像仓库

Username: admin Password: Harbor12345

#密码信息会存储在/root/.docker/config.json

测试master主机上传镜像至私有仓库

[root@master ]# docker tag nginx:latest  192.168.1.12:80/library/nginx:latest

[root@master ]# # docker push 192.168.1.12:80/library/nginx:latest

#向私有仓库推送镜像

在界面中查看刚刚上传的镜像文件。

 

测试master主机从私有仓库下载镜像

将master主机的nginx镜像删除

[root@master ~]# docker rmi -f 192.168.1.12:80/library/nginx:latest

[root@master ~]# docker pull 192.168.1.12:80/library/nginx:latest          #下载镜像

此时可以看到下载数为1

 

点击左侧导航栏,可以看到日志信息

 

命令行窗口查看harbor仓库镜像有哪些

curl http://192.168.1.12:80/v2/_catalog -u admin

命令行窗口查看harbor仓库镜像的标签

curl http://192.168.1.12:80/v2/library/centos/tags/list -u admin

harbor带有认证功能,不管是公开项目还是私有项目,上传镜像都需要用户认证。下载镜像时,公开项目不需要用户认证,私有项目下载需要认证。

如果harbor停止了,在harbor主机可以使用如下命

[root@harbor ~]# docker-compose  up -d

https的方式部署harbor

在http方式部署的基础上做如下操作

第一步:生成CA证书私钥。

[root@harbor ~]# cd /usr/local/harbor/

[root@harbor harbor]# mkdir certs

[root@harbor harbor]# cd certs/

[root@harbor certs]# openssl genrsa -out ca.key 4096

第二步:生成 CA 证书。

[root@harbor certs]# openssl req -x509 -new -nodes -sha512 -days 3650 -subj "/C=CN/ST=Beijing/L=Beijing/O=example/OU=Personal/CN=xh.harbor.com" -key ca.key  -out ca.crt

第三步:生成服务器私钥

[root@harbor certs]# openssl genrsa -out xh.harbor.com.key 4096

第四步:生成证书签名请求

[root@harbor certs]# openssl req -sha512 -new -subj "/C=CN/ST=Beijing/L=Beijing/O=example/OU=Personal/CN=xmtx.harbor.com" -key xh.harbor.com.key -out xh.harbor.com.csr

第五步:生成一个x509 v3扩展文件(内容如下)。

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

[root@harbor certs]# vim v3.txt

[root@harbor certs]# cat v3.txt

authorityKeyIdentifier=keyid,issuer

basicConstraints=CA:FALSE

keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment

extendedKeyUsage = serverAuth

subjectAltName = @alt_names

[alt_names]

DNS.1=xh.harbor.com

第六步:使用v3.txt为Harbor主机生成证书

[root@harbor certs]# openssl x509 -req -sha512 -days 3650 -extfile v3.txt -CA ca.crt -CAkey ca.key -CAcreateserial  -in xh.harbor.com.csr -out xh.harbor.com.crt

第七步:提供证书给Harbor和Docker

[root@master ~]# mkdir -p /etc/docker/certs.d/     #创建docker证书目录,注意目录是在 客户端而不是harbor主机上创建

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

#转换 .crt为 .cert,供Docker使用

[root@harbor certs]# scp ./ca.crt  ./xh.harbor.com.cert ./xh.harbor.com.key  192.168.1.100:/etc/docker/certs.d/

#将服务器证书,密钥和CA证书文件复制到harbor客户端的Docker证书文件

第八步:需改harbor配置文件(主要是取消https部分的注释并修改证书文件路径,修改了图中的部分)

 

第九步: 重新使配置文件生效

[root@harbor harbor]#docker-compose down

[root@harbor harbor]# ./prepare

[root@harbor harbor]#docker-compose up -d

第十步: 将harbor主机及客户端的私有仓库更改为自己定义域名

同时将/etc/hosts修改域名映射(在harbor客户端而不是harbor主机做操作)

 [root@master ~]# cat /etc/docker/daemon.json

{

    "exec-opts": ["native.cgroupdriver=systemd"],

    "registry-mirrors": ["https://registry.cn-hangzhou.aliyuncs.com"],

    "insecure-registries":["xh.harbor.com"]

}

[root@master ~ ]# echo 192.168.1.12  xh.harbor.com >>/etc/hosts

最后:测试登录及镜像拉取推送

[root@node-0001 ~]# docker logout xh.harbor.com    #测试登录

 

测试镜像推送

[root@node-0001 ~]# docker tag nginx:latest  xh.harbor.com/library/nginx:latest

[root@node-0001 ~]# docker push  xh.harbor.com/library/nginx:latest

 

此时查看镜像推送成功

 

删除镜像测试重新拉取(成功)

[root@node-0001 ~]# docker rmi -f xh.harbor.com/library/nginx:latest

[root@node-0001 ~]# docker rmi -f nginx:latest

[root@node-0001 ~]# docker pull xh.harbor.com/library/nginx:latest

 

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值