祝大家开工大吉呀,新的一年要有新的收获呀 ~

系列目录
LaoCat带你认识容器与镜像(一)LaoCat带你认识容器与镜像(二【一章】)LaoCat带你认识容器与镜像(二【二章】)LaoCat带你认识容器与镜像(二【三章】)LaoCat带你认识容器与镜像(三【上】)LaoCat带你认识容器与镜像(三【下】)LaoCat带你认识容器与镜像(四【上】)LaoCat带你认识容器与镜像(四【下】)LaoCat带你认识容器与镜像(番外一【Harbor】)LaoCat带你认识容器与镜像(实践篇一上)LaoCat带你认识容器与镜像(实践篇一下)LaoCat带你认识容器与镜像(实践篇二上)LaoCat带你认识容器与镜像(实践篇二下)

本章内容

搭建Docker镜像私仓Harbor,并配置Docker私仓。

本文实操全部基于Ubuntu 20.04
宿主机 => linux服务器本身
Harbor => 2.5.3

Docker系列文章之仓库篇就介绍了Docker有俩种类型的镜像仓库,一种是公有仓库、一种是私有仓库,今天我们补上系列的番外之一,Docker私有镜像仓库Harbor的搭建教程,相比于其他私有镜像仓库而言,Harbor有着自身的优势,提供了更好性能与安全的,可视化的界面,企业级的、丰富的功能等等。


前置准备工作

首先安装Harbor需要用到Docker-Compose,我们只需要到DaoCloud进行安装即可,这样避免了镜像下载慢、下载失败的问题等等,访问DaoCloud,复制下图命令到宿主机粘贴运行即可。

Harbor pull镜像需要artifacts harbor指定保留镜像数量_linux


安装成功后执行命令docker-compose version,即可查看是否安装成功,docker-compose的命令大同小异于Docker,这个会再后续的章节进行展开,本章主要以Harbor为主。

Harbor pull镜像需要artifacts harbor指定保留镜像数量_github_02


接下来我们需要到HarborGithub仓库下载对应版本的源文件,文中版本是v2.5.3,采用的离线安装包,找到对应的版本后,点击对应安装包下载即可。

Harbor pull镜像需要artifacts harbor指定保留镜像数量_github_03


有下载慢的童鞋可以执行搜索解决,也可以采用wget的方式进行下载,如果下载也慢,推荐使用GitHub Proxy进行下载,复制下载地址到GitHub Proxy,然后点击下载后复制对应下载链接,如下图所示。

Harbor pull镜像需要artifacts harbor指定保留镜像数量_linux_04


Harbor分为HttpHttps俩种安装方式,我们选择Https,用openssl申请的证书,在正式生产环境可以用各云厂商提供的域名与证书,创建对应存放证书的目录与数据目录,也可以不创建就在当前目录。

mkdir -p /ha/sec/cret /ha/data

进入到该目录我们准备生成对应的证书,我们这里准备用到的hostnameharbor1hostname需要指向宿主机ip,当然你可以用任意hostname,但是需要注意下方命令也需要对应的更改,执行相关命令。

# 生成CA证书 这里是365天
openssl req -newkey rsa:4096 -nodes -sha256 -keyout ca.key -x509 -subj "/CN=harbor1" -days 365 -out ca.crt
# 生成harbor主机证书申请
openssl req -newkey rsa:4096 -nodes -sha256 -subj "/CN=harbor1" -keyout harbor1.key -out harbor1.csr
# 颁发证书到harbor主机
openssl x509 -req -in harbor1.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out harbor1.crt

可以看到对应目录下生成的证书,这个会再配置阶段用到。

Harbor pull镜像需要artifacts harbor指定保留镜像数量_Docker_05


配置阶段

我们执行命令tar -zxvf harbor-offline-installer-v2.5.3.tgz,将下载下来的Harbor离线安装包进行解压,解压后得到的目录中不存在harbor.yml,我们需要执行命令cp harbor.yml.tmpl harbor.yml,复制一份模板生成配置文件,编辑配置文件,进行相应的更改。

Harbor pull镜像需要artifacts harbor指定保留镜像数量_docker_06


hostname更改为生成证书时用到的hostname,将证书与私钥进行相应的配置即可,然后我们修改对应的密码与数据目录,密码和数据目录都可以不进行修改,当然我喜欢修改后好方便自己把控。

Harbor pull镜像需要artifacts harbor指定保留镜像数量_Docker_07


配置完Harbor的配置文件,我们还需要将刚刚的hostname配置到对应的hosts文件中,编辑hosts文件,配置宿主机ip到hostname

Harbor pull镜像需要artifacts harbor指定保留镜像数量_Docker_08


安装阶段

接下来就比较简单了,只要上边的准备阶段和配置阶段没有问题,我们只需要执行以下命令,耐心等待即可。

./prepare 
./install.sh

Harbor pull镜像需要artifacts harbor指定保留镜像数量_docker_09


出现该信息,代表安装成功,我们访问配置好的路径进行访问Harbor

Harbor pull镜像需要artifacts harbor指定保留镜像数量_linux_10


使用初始账号密码登录,admin\配置文件中的密码,登录后即可看到对应页面,恭喜你,证明Harbor已经安装成功。

Harbor pull镜像需要artifacts harbor指定保留镜像数量_docker_11


配置Docker私仓

我们修改Docker配置文件,vim /etc/docker/daemon.json,新增如下"insecure-registries": ["192.168.1.98:443"],ip为自己宿主机的ip,前边访问地址。

Harbor pull镜像需要artifacts harbor指定保留镜像数量_docker_12


因为是Https方式配置并安装的Harbor,故Docker登录需要进行额外配置,在Docker目录下新建文件夹mkdir -p certs.d/<你的hostname>/,并将对应证书复制到该目录下,执行命令如下。

Harbor pull镜像需要artifacts harbor指定保留镜像数量_docker_13


然后重启Dockersystemctl daemon-reloadsystemctl restart docker

Harbor pull镜像需要artifacts harbor指定保留镜像数量_github_14


执行Docker登录。

Harbor pull镜像需要artifacts harbor指定保留镜像数量_linux_15


验证Harbor私仓

我们在Harbor创建一个项目,将之前章节的nginx,重新打一个tag,并执行上传。

Harbor pull镜像需要artifacts harbor指定保留镜像数量_linux_16


Harbor pull镜像需要artifacts harbor指定保留镜像数量_github_17


然后查看对应项目中是否存在该镜像。

Harbor pull镜像需要artifacts harbor指定保留镜像数量_github_18


是我们刚刚上传的镜像,恭喜你,你已经学会如何使用Docker的私仓Harbor了。


☆ 参考文献:
【搭建docker私有仓库:Harbor,版本:v2.4】

◎ 文中所用到的资源链接:
【DaoCloud | 安装Docker Compose】
https://get.daocloud.io/#install-compose 【Harbor v2.5.3】
https://github.com/goharbor/harbor/releases