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