一、Harbor简介
harbor是VMware公司中国团队为企业用户设计的 Registry server 开源项目,它是基于docker的registry的,但是又比registry多出了很多功能。
提供WEB界面,优化用户体验。
提供分层传输机制,优化网络传输。docker镜像都是分层的,重复下载同样的层,是一种浪费。
Harbor提供了基于角色的访问控制机制,并通过项目来对镜像进行组织和访问权限的控制。
综上,比起简单的registry,Harbor更适合用作企业级的docker仓库。
二、下载
官方地址:https://github.com/goharbor/harbor/releases
有两种包可下载,离线包(很大)与在线包(很小)。
git的网速实在太慢,我们下载在线安装包。
cd /data/downlaod
wget https://github.com/goharbor/harbor/releases/download/v2.1.3/harbor-online-installer-v2.1.3.tgz
三、配置
解压缩文件到指定目录
tar -zxvf harbor-online-installer-v2.1.3.tgz -C /data/soft/
进入软件目录,准备证书,因为需要使用https,所以要制作证书。
cd /data/soft/harbor
#生成秘钥和自签名证书
openssl req -newkey rsa:4096 -nodes -sha256 -keyout ca.key -x509 -days 365 -out ca.crt
#生成证书签名请求
openssl req -newkey rsa:4096 -nodes -sha256 -keyout harbor.master.com.key -out harbor.master.com.csr
#生成服务器证书
openssl x509 -req -days 365 -in harbor.master.com.key -CA ca.crt -CAkey ca.key -CAcreateserial -out harbor.master.com.csr
然后,生成了这些证书文件:
复制一份配置文件,然后修改 配置
#复制默认配置文件
cp harbor.yml.tmpl harbor.yml
#打开配置文件
vim harbor.yml
配置文件的内容修改。
1.host修改为本机的IP地址。
2.配置https的证书文件
3.Harbor管理员账户的密码
4.mysql数据库的密码
5.数据卷的位置
四、安装
注意:需要事先安装好docker与docker-compose,安装方法请自行百度。docker推荐使用yum方式安装,docker-compose推荐直接下载二进制文件。
执行安装脚本
./install.sh
然后开始自动生成docker-compose.yml文件,并下载相关docker镜像。
之后的启停操作,就是常见的docker-compose ps/stop/start/restart/rm
五、使用
访问web页面,因为使用的https的默认443端口,直接使用IP即可访问:https:192.168.3.218
帐号密码为 admin/Harbor12345 ,密码在上一步的配置中是可以配置的。
1、推送镜像到私有仓库。
先从公共仓库下载一个hello-world镜像
dokcer pull hello-world
打上tag,私有仓库地址,以及项目名称是必须的。
docker tag hello-world:latest 192.168.3.218/library/hello-world:latest
修改/etc/docker/daemon.json,并重启docker
{
"registry-mirrors":["https://registry.docker-cn.com"],
"insecure-registries": [ "192.168.3.218"]
}
#重启docker
systemctl restart docker
登录,用户名密码可以使用管理员,也可以使用在web界面新建的用户
docker login 192.168.3.218
推送镜像到私服
docker push 192.168.3.218/library/hello-world:latest
然后再web界面的library项目下就能看到这个镜像了。
2.从私有仓库下载镜像
换一台计器,下载镜像
修改/etc/docker/daemon.json,并重启docker,同上
登录,同上。
下载镜像
docker pull 192.168.3.218/library/hello-world
最后,结合IDE的docker插件,就可以一键部署,十分方便。