企业级镜像仓库Harbor的部署及使用

网友投稿 252 2022-10-20

企业级镜像仓库Harbor的部署及使用

一、环境准备

CentOS 7.6 Minimal 192.168.73.135 Docker 20.10.12 Docker Compose v2.2.2 Openssl (CentOS系统自带)

二、下载

下载地址

解压

# 解压 tar -xvf harbor-offline-installer-v2.4.1.tgz # 移动到安装目录 mv harbor /usr/local/harbor

三、HTTPS证书

在CentOS服务器进行如下操作,我这里使用域名harbor.rkyao.com访问,生成证书命令里的域名替换成这个

1、生成证书颁发机构证书

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

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=harbor.rkyao.com" \ -key ca.key \ -out ca.crt

2、生成服务器证书

证书通常包含一个.crt文件和一个.key文件

1) 生成私钥

openssl genrsa -out harbor.rkyao.com.key 4096

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

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

3) 生成一个x509 v3扩展文件

cat > v3.ext <<-EOF authorityKeyIdentifier=keyid,issuer basicConstraints=CA:FALSE keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment extendedKeyUsage = serverAuth subjectAltName = @alt_names [alt_names] DNS.1=harbor.rkyao.com DNS.2=harbor.rkyao.com DNS.3=harbor.rkyao.com EOF

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

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

3、提供证书给Harbor和Docker

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

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

mkdir -p /data/cert/ cp harbor.rkyao.com.crt /data/cert/ cp harbor.rkyao.com.key /data/cert/

2) 转换harbor.rkyao.com.crt为harbor.rkyao.com.cert,供Docker使用,Docker守护进程将.crt文件解释为CA证书,将.cert文件解释为客户端证书。

openssl x509 -inform PEM -in harbor.rkyao.com.crt -out harbor.rkyao.com.cert

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

mkdir -p /etc/docker/certs.d/harbor.rkyao.com/ cp harbor.rkyao.com.cert /etc/docker/certs.d/harbor.rkyao.com/ cp harbor.rkyao.com.key /etc/docker/certs.d/harbor.rkyao.com/ cp ca.crt /etc/docker/certs.d/harbor.rkyao.com/

证书文件夹的目录结构

/etc/docker/certs.d/ └── harbor.rkyao.com ├── ca.crt ├── harbor.rkyao.com.cert └── harbor.rkyao.com.key

4) 重启Docker

systemctl restart docker

四、Harbor配置文件

# 切换到安装目录 cd /usr/local/harbor # harbor.yml为配置文件,默认不存在,需从harbor.yml.tmpl复制出一个出来 cp harbor.yml.tmpl harbor.yml # 打开文件 vi harbor.yml # 修改如下配置 hostname: harbor.rkyao.com certificate: /data/cert/harbor.rkyao.com.crt private_key: /data/cert/harbor.rkyao.com.key external_url: 切换到安装目录 cd /usr/local/harbor # 执行安装脚本 sh install.sh

六、Web页面

本地win系统配置hosts

192.168.73.135 harbor.rkyao.com

浏览器访问 即可打开Web管理界面,用户名密码为 admin/Harbor12345

七、上传及拉取镜像

在另一台Linux服务器上面进行测试

1、配置

配置hosts

vi /etc/hosts # 添加如下内容 192.168.73.135 harbor.rkyao.com

在Docker的配置文件的目录添加服务器证书

# 创建目录 mkdir -p /etc/docker/certs.d/harbor.rkyao.com/ # 该目录下添加三个证书文件ca.crt、harbor.rkyao.com.cert、harbor.rkyao.com.key,从安装Harbor的机器上 /etc/docker/certs.d/harbor.rkyao.com 目录下copy过来,参见上面 三、3、3)节

2、上传镜像

通过Web界面创建一个项目rkyao,先创建了才能上传镜像

上传镜像

# 登录 用户名密码 admin/Harbor12345 docker login --username=admin harbor.rkyao.com # 给本地镜像打tag,命令格式如下 docker tag [ImageId] [harbor域名]/[项目名]/[REPOSITORY]:[TAG] eg: docker tag 57c4d3c46810 harbor.rkyao.com/rkyao/eureka-server:1.0.0 # 上传镜像 docker push [harbor域名]/[项目名]/[REPOSITORY]:[TAG] eg: docker push harbor.rkyao.com/rkyao/eureka-server:1.0.0

在Web页面上查看,有刚才上传的镜像说明上传成功

3、拉取镜像

拉取命令格式如下

docker pull [harbor域名]/[项目名]/[REPOSITORY]:[TAG] eg: docker pull harbor.rkyao.com/rkyao/eureka-server:1.0.0

查看本地镜像,拉取成功

八、参考文档

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:docker启动报错 error creating overlay mount to
下一篇:Java毕业设计实战之学生管理系统的实现
相关文章

 发表评论

暂时没有评论,来抢沙发吧~