Centos 安装 Harbor

摘要:
如果使用FQDN连接端口主机,则必须将其指定为公共名称属性。opensslreq-x509-new-nodes-sha512-days3650-subj"/C=CN/ST=Shanghai/L=Shanghai/O=bamboo/OU=Personal/CN=mydocker.harbor.com"-keyca.key-outca.crt[root@k8s-master01keys2]#opensslreq-x509-new-nodes-sha512-days3650-subj"/C=CN/ST=Shanghai/L=Shanghai/O=bamboo/OU=Personal/CN=mydocker.harbor.com"-keyca.key-outca.crt2、创建服务端的证书2.1[root@k8s-master01keys2]#opensslgenrsa-outmydocker.harbor.com.key4096GeneratingRSAprivatekey,4096bitlongmodulus................................................................................................................................................................................................++............................................++eis655372.2证书调整-subj选项中的值以标识您的组织。[root@k8s-master01keys2]#opensslreq-sha512-new-subj"/C=CN/ST=Shanghai/L=Shanghai/O=bamboo/OU=Personal/CN=mydocker.harbor.com"-keymydocker.harbor.com.key-outmydocker.harbor.com.csr2.3生成一个x509v3扩展文件。无论您是使用FQDN还是IP地址来连接到您的Harbor主机,您都必须创建这个文件,以便为您的Harbor主机生成一个符合SubjectAlternativeName和x509v3扩展要求的证书。替换DNS项以反映您的域。为您的Harbor主机生成证书的ext文件。

本文安装环境是

Dcoker version

 Client: Docker Engine -Community
 Version:           19.03.6API version:       1.40Go version:        go1.12.16Git commit:        369ce74a3c
 Built:             Thu Feb 13 01:29:29 2020OS/Arch:           linux/amd64
 Experimental:      false

Docker-compose version  

docker-compose version 1.25.4, build 8d51620a
docker-py version: 4.1.0
CPython version: 3.7.5OpenSSL version: OpenSSL 1.1.0l  10 Sep 2019

Harbor version:harbor-offline-installer-v1.10.1.tgz

1、Harbor基础知识

Harbor 是一个CNCF基金会托管的开源的可信的云原生docker registry项目,可以用于存储、签名、扫描镜像内容,Harbor 通过添加一些常用的功能如安全性、身份权限管理等来扩展 docker registry 项目,此外还支持在 registry 之间复制镜像,还提供更加高级的安全功能,如用户管理、访问控制和活动审计等,在新版本中还添加了Helm仓库托管的支持.

2、安装 Harbor条件说明

Centos 安装 Harbor第1张

3、Harbor 安装

3.1下载 Harbor文件包

(由于文件比较大,建议下载好传递到服务器解压即可),下载链接点击后面的文字即可.Harbor 下载链接

3.2上传到服务器

1)、执行 rz命令,然后弹出窗口可以直接选择.(如果没有rz命令 yum install -y lrzsz即可)

2)、scp上传

[root@k8s-master01] # scpharbor-offline-installer-v1.10.1.tgz root@192.168.56.2:/root/software/harbor

3)、解压

tar -zxvfharbor-offline-installer-v1.10.1.tgz

Centos 安装 Harbor第2张

4)、修改配置文件 harbor.yml

Centos 安装 Harbor第3张

5)、由于配置了 https,所以需要生成密钥证书相关的信息

1、创建认证的证书
1.1创建一个私钥,创建成功后本目录下会有一个 ca.key 的文件
[root@k8s-master01 keys2]#openssl genrsa -out ca.key 4096
Generating RSA private key, 4096bit long modulus
....................................................................................................................................................................................................................................................................++................................++e is 65537 (0x10001)

1.2创建证书; 创建成功后目录下会有 ca.crt 文件
调整-subj选项中的值以标识您的组织。如果使用FQDN连接端口主机,则必须将其指定为公共名称(CN)属性。
openssl req -x509 -new -nodes -sha512 -days 3650-subj "/C=CN/ST=Shanghai/L=Shanghai/O=bamboo/OU=Personal/CN=mydocker.harbor.com"-key ca.key 
 -out ca.crt

[root@k8s-master01 keys2]#openssl req -x509 -new -nodes -sha512 -days 3650 
 -subj "/C=CN/ST=Shanghai/L=Shanghai/O=bamboo/OU=Personal/CN=mydocker.harbor.com"-key ca.key 
 -out ca.crt

2、创建服务端的证书
2.1[root@k8s-master01 keys2]#openssl genrsa -out mydocker.harbor.com.key 4096
Generating RSA private key, 4096bit long modulus
................................................................................................................................................................................................++............................................++e is 65537 (0x10001)

2.2证书
调整-subj选项中的值以标识您的组织。如果使用FQDN连接端口主机,则必须将其指定为公共名称(CN)属性,并在密钥和CSR文件名中使用。
[root@k8s-master01 keys2]#openssl req -sha512 -new 
    -subj "/C=CN/ST=Shanghai/L=Shanghai/O=bamboo/OU=Personal/CN=mydocker.harbor.com"-key mydocker.harbor.com.key 
    -out mydocker.harbor.com.csr


2.3生成一个x509 v3扩展文件。
无论您是使用FQDN还是IP地址来连接到您的Harbor主机,您都必须创建这个文件,以便为您的Harbor主机生成一个符合Subject Alternative Name (SAN)和x509 v3扩展要求的证书。替换DNS项以反映您的域。


[root@k8s-master01 keys2]#vim v3.ext 
authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage =digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
extendedKeyUsage =serverAuth
subjectAltName =@alt_names

[alt_names]
DNS.1=mydocker.harbor.com
DNS.2=mydocker.harbor.com
DNS.3=mydocker.harbor.com

2.4使用v3。为您的Harbor主机生成证书的ext文件。
[root@k8s-master01 keys2]#openssl x509 -req -sha512 -days 3650 
    -extfile v3.ext 
    -CA ca.crt -CAkey ca.key -CAcreateserial 
    -inmydocker.harbor.com.csr 
    -out mydocker.harbor.com.crt
Signature ok
subject=/C=CN/ST=Shanghai/L=Shanghai/O=bamboo/OU=Personal/CN=mydocker.harbor.com
Getting CA Private Key


3、然后把这些证书提供给 docker 和 harbor
3.1 /apps/registrs/cert 的目录就是 harbor.yaml 里配置的 https 下的目录,保持一致即可,没有目录就先创建一下
cp mydocker.harbor.com.crt /apps/registrs/cert/cp mydocker.harbor.com.key /apps/registrs/cert/

3.2生成 .cert 文件以供 docker 使用
[root@k8s-master01 keys2]#openssl x509 -inform PEM -in mydocker.harbor.com.crt -out mydocker.harbor.com.cert

3.3将服务器证书、密钥和CA文件 copy 到 Harbor 主机上的Docker证书文件夹中
##如果没有这个目录就创建一下先
mkdir -p /etc/docker/certs.d/
cp mydocker.harbor.com.cert /etc/docker/certs.d/ymydocker.harbor.com/cp mydocker.harbor.com.key /etc/docker/certs.d/mydocker.harbor.com/cp ca.crt /etc/docker/certs.d/mydocker.harbor.com/
如果是有多个节点的话,记得把这这几项也 copy 到节点的主机上

3.4重启 docker 
[root@k8s-master01 keys2]#systemctl restart docker

6)、安装

./install.sh

安装过程中会一步一步的执行,如果有配置文件问题,或者硬件什么的不满足,就会直接报错,根据错误提示信息解决即可.

我在安装的过程中遇到过的问题

1)、yaml格式有问题,他会提示那一行有问题,打开 yaml文件寻找特定的行即可.(我当时提示的是中文的冒号":",然后换成英文的冒号即可":")

2)、虚拟机选择磁盘空间的时候,选择的小,导致提示空间不足,然后删除一些东西才可以了.

4、Harbor 测试

4.1 docker登录

[root@k8s-master01 harbor]# docker login https://mydocker.harbor.com/
Authenticating with existing credentials...
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/#credentials-store

Login Succeeded

如果没有问题,就会提示如上的信息

然后可以测试一下 push到仓库.

这个 demo是我自己写的一个 springboot的例子

首先构建 docker镜像,然后打 tag,再推送到这里来的.执行步骤如下:

Dockerfile

Dockerfile
From java:8MAINTAINER bamboo

ADD demo-0.0.1-SNAPSHOT.jar /demo-0.0.1-SNAPSHOT.jar

EXPOSE 80ENTRYPOINT ["java", "-jar", "/demo-0.0.1-SNAPSHOT.jar"]

构建镜像

[root@k8s-master01 sbd]# docker build -f Dockfile -t demo:1.1 .

然后打 tag

[root@k8s-master01 sbd]#docker tagdemo:1.1 mydocker.harbor.com/library/demo:1.1

查看构建、打 tag 的镜像

[root@k8s-master01 sbd]# docker images |grep demo

[root@k8s-master01 sbd]# docker images |grep demo
demo 1.1 888f1547a370 22 hours ago 661MB
mydocker.harbor.com/library/demo 1.1 888f1547a370 22 hours ago 661MB

推送到仓库

[root@k8s-master01 sbd]#docker pushmydocker.harbor.com/library/demo:1.1

4.2浏览器登录

安装成功后,打开浏览器 https://mydocker.harbor.com,输入admin/Harbor12345登录就会看到如下的内容

Centos 安装 Harbor第4张

其实尽量是按照官网的来搞,会比较清楚一点,这就需要锻炼一下自己的英文了.官网的详细步骤参考如下链接:

https://github.com/goharbor/harbor/tree/master/docs/1.10

免责声明:文章转载自《Centos 安装 Harbor》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇刷题笔记——单调栈OS + Linux sshkeygen / sshcopyid / id_rsa / id_rsa.pub / authorized_keys下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Linux下搭建iSCSI共享存储的方法 TGT 方式 CentOS6.9系统下

iSCSI(internet SCSI)技术由IBM公司研究开发,是一个供硬件设备使用的、可以在IP协议的上层运行的SCSI指令集,这种指令集合可以实现在IP网络上运行SCSI协议,使其能够在诸如高速千兆以太网上进行路由选择。iSCSI技术是一种新储存技术,该技术是将现有SCSI接口与以太网络(Ethernet)技术结合,使服务器可与使用IP网络的储存装置...

Docker中使用Dockerfile定制化jar启动时:at sun.awt.FontConfiguration.getVersion(FontConfiguration.java:1264)

场景 CentOS7中使用Dockerfile部署后台jar包: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/119818808 在上面使用Dockfile部署带后台jar包的镜像时提示: at sun.awt.FontConfiguration.getVersion(FontConf...

docker原理(转)

转自:https://zhuanlan.zhihu.com/p/22382728      https://zhuanlan.zhihu.com/p/22403015 在学习docker的过程中,我发现目前docker学习最大的障碍,不是网上的资源太少,而是网上的资源太多,资源太多带来的噪声让学习效率降低不少。而在讲解docker原理上,所有的讲解都是关于...

docker 自动更新镜像和容器

原文: https://www.cnblogs.com/wangjq19920210/p/12692068.html快速开始Watch­tower 本身被打包为 Docker 镜像,因此可以像运行任何其他容器一样运行它:(然后所有容器都会自动更新,也包括 Watch­tower 本身) docker run -d --name watchtowe...

Centos 7 解决free -m 下buff/cache缓存很高

Linux服务器运行一段时间后,由于其内存管理机制,会将暂时不用的内存转为buff/cache,这样在程序使用到这一部分数据时,能够很快的取出,从而提高系统的运行效率,所以这也正是linux内存管理中非常出色的一点,所以乍一看内存剩余的非常少,但是在程序真正需要内存空间时,linux会将缓存让出给程序使用,这样达到对内存的最充分利用,所以真正剩余的内存是f...

centos 7 安装samba配置匿名共享文件夹

1.安装centos 7 2.使用root登陆系统,更新系统及所有软件按到最新 yum update -y && reboot 3.安装vim、samba yum install vim samba -y 4.配置文件在/etc/samba/smb.conf [global] workgroup = SAMBA...