1 背景介绍
由于Docker官方镜像仓库服务器是在国外,访问时速度比较慢,国内的网易蜂巢等镜像仓库又无法创建私有的镜像仓库,根据公司业务的创建的镜像不可能存放在公开的镜像仓库上;因此想通过搭建私有的镜像仓库用于存储公司业务创建的镜像,目前vmware公司开源的Harbor仓库是国内首选的私有镜像仓库,本文将使用Harbor进行部署安装。
2 软件需求
2.1 官方建议Harbor安装底层需求
Python需要使用2.7或更高版本
Docker引擎需要使用1.10或更高版本
Docker Compose需要使用1.6.0或更高版本
2.2 本文系统和软件版本
System version: CentOS Linux release 7.7.1908 (Core)
Python version: Python 2.7.5(CentOS7系统默认2.7以上)
Docker version: Docker version 19.03.5, build 633a0ea
Docker-compose version: docker-compose version 1.25.0, build 0a186604
Harbor version: v1.7.5
3 部署Harbor
3.1 安装底层依赖
(1) 安装python2.7.5
默认CentOS7以上的操作系统自带python2.7以上的版本,若是其他版本的操作系统,请自行Google解决安装。
(2) 安装docker-ce19.03.5
更新系统到最新版并重启生效
1 | yum update -y |
关闭防火墙firewalld和selinux
1 | systemctl stop firewalld |
安装iptables并启动
1 | yum install -y iptables-services |
使用rpm包方式安装docker-ce,使用以下网址下载docker-ce对应版本的rpm安装包和依赖组件包
下载网址:https://download.docker.com/linux/centos/7/x86_64/stable/Packages/
1 | mkdir /opt/docker |
启动dockerd进程
1 | systemctl start docker |
验证docker是否正常安装并启动
1 | docker run hello-world |
(3) 安装docker-compose1.25.0
下载对应系统版本的docker-compose可执行文件放置到系统环境变量/usr/local/bin下,然后赋予可执行权限
下载网址:https://github.com/docker/compose/releases
1 | cd /opt/docker |
验证docker-compose是否安装成功
1 | docker-compose -v |
3.2 安装Harbor
harbor官方上提供offline和online两个版本,其中offline是带有底层镜像的离线版;online是不包含镜像的在线版,安装的时候会自动去官网拉取镜像;本文建议下载offline版本,减少安装时拉取镜像的时间(网速太慢)。
Harbor官方下载地址:https://github.com/vmware/harbor/releases
下载并解压harbor软件包
1 | cd /opt/docker |
配置harbor.cfg文件
1 | cd /usr/local/harbor |
创建https服务端证书和密钥
1 | mkdir -p /data/cert |
运行harbor安装脚本
1 | cd /usr/local/harbor |
测试访问harbor仓库web页面
以Windows为例,先配置hosts解析,编辑 C:\Windows\System32\drivers\etc\hosts 文件,添加如下内容:
注:如果域名有dns解析,这一步可以省略
1 | 192.168.1.222 hub.opsunion.com |
浏览器输入https://hub.opsunion.com测试访问(将hub.opsunion.com更改为你的harbor.cfg配置文件中的主机名),其中管理员默认用户名为admin,默认密码为Harbor12345,如下图所示:
附:停止或启动harbor仓库命令
1 | cd /usr/local/harbor #切换到harbor安装目录下 |
4 客户端配置并测试私有仓库
配置hosts解析
以CentOS系统为例,修改/etc/hosts配置文件,执行以下命令,如下所示:
注:如果域名有dns解析,这一步可以省略
1 | echo '192.168.1.222 hub.opsunion.com' >>/etc/hosts |
设置私有镜像仓库地址
1 | vim /etc/docker/daemon.json |
重新加载配置并重启docker服务
1 | systemctl daemon-reload |
下载测试镜像
1 | docker pull hello-world |
给镜像重新打标签
1 | docker tag hello-world:latest hub.opsunion.com/base/hello-world:v1.0 |
注:其中 hello-world:latest 为源镜像名:版本号
hub.opsunion.com/base/hello-world:v1.0 为目标仓库地址/仓库名/镜像名:版本号
登录私有镜像仓库上传镜像
1 | docker login https://hub.opsunion.com #需要输入仓库的用户名和密码 |
登录harbor仓库web页面查看上传的镜像,如下图所示,镜像上传成功。