«

Docker 企业级镜像仓库harbor(vmware 中国团队)

指尖二进制 • 1 年前 • 745 次点击 • DOCKER


[TOC]

下载地址
https://github.com/goharbor/harbor
https://github.com/goharbor/harbor/releases
https://github.com/goharbor/harbor/releases/download/v1.10.1/harbor-offline-installer-v1.10.1.tgz

一:生成https证书

由于Harbor不附带任何证书,它默认使用HTTP来提供注册表请求。但是,强烈建议为任何生产环境启用安全性。
http需要配置/etc/docker/daemon.json配置文件,https则不用配置。
因为测试使用,使用自签名证书:
https://www.cnblogs.com/Dev0ps/p/10566398.html 生成https证书参考

1.1:创建CA证书

首先创建个目录存放

[root@docker-01 ~]# cd ca/
[root@docker-01 ca]# ls
[root@docker-01 ca]# openssl req  -newkey rsa:4096 -nodes -sha256 -keyout ca.key -x509 -days 365 -out ca.crt

其中:(req:申请证书签署请求;-newkey 新密钥 ;-x509:可以用来显示证书的内容,转换其格式,给CSR签名等X.509证书的管理工作,这里用来自签名。)
一路回车出现Common Name 输入IP或域名
Common Name (eg, your name or your server's hostname) []:10.0.0.11

1.2:生成证书签名请求

[root@docker-01 ca]# openssl req  -newkey rsa:4096 -nodes -sha256 -keyout 10.0.0.11.key -out 10.0.0.11.csr

一路回车出现Common Name 输入IP或域名
Common Name (eg, your name or your server's hostname) []:10.0.0.11

1.3:生成证书

备注:若需要添加多个地址(允许链接的ip等)

[root@docker-01 ca]# echo subjectAltName = IP:10.0.0.11 > extfile.cnf
[root@docker-01 ca]# openssl x509 -req -days 365 -in 10.0.0.11.csr -CA ca.crt -CAkey ca.key -CAcreateserial -extfile extfile.cnf -out 10.0.0.11.crt

二:安装harbor

2.1:上传harbor并解压

[root@docker-01 ~]# mv harbor-offline-installer-v1.10.1.tgz /opt/
[root@docker-01 ~]# cd /opt/
[root@docker-01 opt]# tar fx harbor-offline-installer-v1.10.1.tgz 

2.2:导入harbor镜像

[root@docker-01 opt]# cd harbor/
[root@docker-01 harbor]# docker load -i harbor.v1.10.1.tar.gz

2.3:修改yml配置文件

[root@docker-01 harbor]# vim harbor.yml
hostname: reg.mydomain.com
改为:
hostname: 10.0.0.11

https:
  # https port for harbor, default is 443
  port: 443
  # The path of cert and key files for nginx
  certificate: /root/ca/10.0.0.11.crt   #修改https证书所在位置
  private_key: /root/ca/10.0.0.11.key   #修改https证书所在位置

harbor_admin_password: Harbor12345  #可以修改

2.4:安装harbor

[root@docker-01 ~]# yum -y install epel-release
[root@docker-01 ~]# yum install -y docker-compose
[root@docker-01 harbor]# ./install.sh 
✔ ----Harbor has been installed and started successfully.----
[root@docker-01 harbor]# docker-compose ps # 查看Harbor的状态

2.5:测试访问

三:测试上传镜像

3.1:删除daemon.json

[root@docker-03 ~]# mv /etc/docker/daemon.json /tmp/
[root@docker-03 ~]# systemctl restart docker

3.2:测试上传镜像

1:访问,https://配置的ip或域名(若nginx的443配置了其他端口需要加上对应端口号)
2:docker login xxxx
若报错x509: certificate signed by unknown authority:
需要把之前制作的ca证书添加到信任(因为是自签名证书)

[root@docker-03 ~]# mkdir -p /etc/docker/certs.d/10.0.0.11
[root@docker-01 ~]# scp /root/ca/10.0.0.11.crt 10.0.0.31:/etc/docker/certs.d/10.0.0.11
[root@docker-03 ~]# systemctl restart docker.service

注意:每一个客户端都需要复制上面的ca.crt到Docker相应目录,然后重启Docker。

再次测试docker login xxxx,成功登陆~
浏览器需要添加“访问例外”

[root@docker-03 ~]# docker login 10.0.0.11
Username: admin
Password: Harbor12345
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

[root@docker-03 ~]# docker tag progrium/consul 10.0.0.11/library/consul:latest
[root@docker-03 ~]# docker push 10.0.0.11/library/consul:latest

[root@docker-03 ~]# docker tag centos:6.9 10.0.0.11/library/centos:6.9
[root@docker-03 ~]# docker push 10.0.0.11/library/centos:6.9

还没收到回复