文章目录
准备工作
- 安装docker
Linux下安装Docker及基础操作 - 安装docker-compose
官网教程- 下载
sudo curl -L "https://github.com/docker/compose/releases/download/1.24.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
- 更改权限
sudo chmod +x /usr/local/bin/docker-compose
- 下载
Harbor安装
资源下载
- 下载
Harbor Github上的下载页面,这里下载了目前最新的1.8.0的版本;将其拷贝至linux服务器的/usr/local/src/目录下并解压;
Https证书配置
- 前言
由于Docker上传默认使用的Https,为了不影响客户端的使用,这里使用自签泛域名证书的方式进行测试;这一步也可以不做配置,那么就只支持http的上传,客户端就需要指定授权,具体的方式下面会介绍;如果不想配置https证书或者不想配,可以直接跳过本节直接看下一节; - 域名说明
为了便于访问,这里使用了hub.lpf.com作为了测试域名;声明lpf.com非本人域名,这里仅仅使用hub.lpf.com映射到内网下的一个做测试用,不做任何其他用处。个人测试的话,也可以使用其他的任意域名,该域名仅仅作为解析到内网ip使用,不会做公网映射;
如果需要做私服的外网访问,这里也可以使用真实的域名,相关的域名证书可以上阿里云、腾讯云等平台申请付费或者免费的证书;关于免费证书申请,可参考该博客:免费SSL证书实现https请求 - 添加hosts记录
本地内网下使用:192.168.1.21的一台机器作为镜像服务器,在192.168.1.21的hosts文件下加一条域名映射关系,用于将hub.lpf.com映射到192.168.1.21的机器上;如果域名是真实的且与本机做了映射,就不用做此配置;
添加以下配置vi /etc/hosts
使用:ping hub.lpf.com 测试是否已经生效192.168.1.21 hub.lpf.com
- 自签证书生成
-
下载正式生成工具
下载自签泛域名证书的工具,放到linux服务器上,也可以在linux服务器上安装git,使用git clone指令进行下载;如果是压缩包,请自行解压好。 -
生成正式
进入以上工具的解压目录,使用以下指令
cd /usr/local/src/ssl-master./gen.cert.sh hub.lpf.com
可以看出,out目录下为生成的证书信息;为了方便我们后续的配置,我们将证书拷贝到另外一个目录:mkdir -p /home/data/keys/harbor/ cp /usr/local/src/ssl-master/out/hub.lpf.com/hub.lpf.com.key.pem /home/data/keys/harbor/cert.key.pem cp /usr/local/src/ssl-master/out/hub.lpf.com/hub.lpf.com.crt /home/data/keys/harbor/hub.lpf.com.crt
-
root.crt说明
》注意,警告《 该证书文件需要放到各个客户端,才能正常的通过https访问,这里做说明,后面会详细的讲解怎么使用
-
Harbor的配置文件修改
- 进入harbor的解压目录,找到以下文件
vim harbor.yml - 添加修改以下配置:
目前我们只修改以上的配置,如果需要更多的配置,可以根据描述进行修改调整;#主机地址,前面配置的域名 hostname: hub.lpf.com # http 相关的配置 http: # 由于80端口被其他的服务给占用了,这里使用8099代替 port: 8099 # https 相关配置 # 默认情况下,https的配置都没有开启,由于我们已经生成了自签的正式,这里就做https的ssl证书配置 # 如果不需要https证书,可以将以下配置注释掉 https: # https 的端口,443地址 port: 443 # 签名生成的证书的相关路径 # 以下的路径请根据个人的具体情况配置 certificate: /home/data/keys/harbor/hub.lpf.com.crt private_key: /home/data/keys/harbor/cert.key.pem
安装Harbor
- 进入harbor的解压目录,找到并执行以下shell脚本
出现以下日志,说明harbor安装成功
Harbor管理平台
- 进入管理平台
https://hub.lpf.com- 注意
由于hub.lpf.com只是做内网下的映射,这里如果使用window访问管理平台,也需要在window的hosts文件下添加一条映射记录,window的hosts的路径为:C:\Windows\System32\drivers\etc下
- 说明
由于使用的是自签的证书,同时又使用了hosts进行了重定向,这里使用浏览器访问的时候,会出现安全提示,但是不会影响https的正常使用,这里将就一下;如果使用正规渠道下发的证书,就不会出现安全提示。 - 使用默认账户密码登录
用户名:admin
密 码:Harbor12345
以上用户名密码可以在harbor.yml配置中修改 - 新建项目
- 注意
Docker上传本地镜像仓库(HTTPS)
-
准备工作
准备另外一台服务器,作为docker的客户端,这里使用:192.168.1.208;安装好Docker,具体安装步骤上面有介绍; -
下载一个mysql:5.6.36版本的镜像作为测试;
docker pull centos:7
-
配置hosts文件
同上所述,在host加上docker服务端的ip映射;如果是真实的域名且映射了对应机器,可不做配置。 -
添加HTTPS证书
创建目录mkdir -p /etc/docker/certs.d/hub.lpf.com
以上hub.lpf.com为域名,可以根据个人的配置自行调整
将上面生成的证书root.crt拷贝只该目录
-
镜像打标签
给镜像打上本地服务的标签docker tag centos:7 hub.lpf.com/test/centos:7
-
登录本地镜像仓库
docker login hub.lpf.com
输入Harbor管理平台的用户密码,这里使用的admin的账户
-
推送本地镜像
docker push hub.lpf.com/test/centos:7
管理中心已经可以正常看见对应的镜像文件
Docker本地镜像下载(HTTPS)
-
前言
这里使用另外一台服务器(192.168.1.22)作为Docker客户端进行下载测试; -
Hosts配置
同上所述 -
添加root.crt证书
同上面的上传服务器的添加方式宜阳 -
登录
-
下载镜像
docker pull hub.lpf.com/test/centos:7 docker images|grep centos
Docker上传本地镜像仓库(HTTP)
-
harbor配置
如果没有https证书或者不想弄https,使用http的也是可以做到上传下载;由于上面安装harbor的时候已经开放了8099端口作为http的服务,这里就使用8099端口作为演示; -
打本地镜像标签
docker tag centos:7 hub.lpf.com:8099/test/centos:7
-
上传
docker push hub.lpf.com:8099/test/centos:7
- 问题
由于docker上传默认使用的是https,因此直接推送回报以下错误
- 解决方式
在/etc/docker/daemon.json的配置文件下添加授权{ "insecure-registries":["hub.lpf.com:8099"] }
- 重启docker服务
systemctl restart docker
- 测试
再次推送即可将镜像推送上去
- 问题
Docker本地镜像下载(HTTP)
- 问题描述
客户端使用http下载的时候,面临的问题和上传是一样的,因此,我们需要/etc/docker/daemon.json的配置文件下添加相同的配置,并重启!
- 配置后测试
到此,基于Harbor的本地镜像仓库已经搭建完成,同时实现了http及https的镜像上传和下载!