01 前言
Harbor是一个用于存储和分发Docker镜像Registry私服,我们可以使用它来管理企业内部的Docker镜像。它提供UI,可以方便用户管理。本文转自公众号:天目星 ,请大家多多关注。链接:传送门
一、使用的软件与架构图
linux:CentOS 7.5.1804
harbor:harbor-offline-installer-v1.5.0.tgz
docker:docker-ce-18.09.1-3
使用的节点
主机名 | IP地址 |
node3.test.com | 192.168.159.22 |
二、安装
1、安装docker-ce
参考docker官网,如有旧版本请先卸载
https://docs.docker.com/install/linux/docker-ce/centos/
$ sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
安装yum的支持套件
$ sudo yum install -y yum-utils \
device-mapper-persistent-data \
lvm2
添加docker官方仓库
$ sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
使用yum安装docker
# 查询有哪些docker版本
$ yum list docker-ce --showduplicates | sort -r
# 选择k8s对应的docker版本安装
$ sudo yum install docker-ce-<VERSION_STRING>
# 我们使用的是k8s 1.14 ,建议安装docker 18.09
$ sudo yum install docker-ce-18.09.1
2、安装harbor
参考项目网站:https://github.com/goharbor/harbor
安装harbor需要docker-compose的支持
$ yum install docker-compose
官网提供的发布包下载地址:
https://github.com/goharbor/harbor/releases
harbor提供离线安装与在线安装包下载,本例使用离线安装包安装
解压到相关目录下
$ tar xvf harbor-offline-installer-v1.5.0.tgz -C /opt
$ cd /opt/harbor
修改配置文件
$ cd /opt/harbor
$ vim harbor.cfg
hostname = node3.test.com #设置访问Harbor Admin UI的地址
ui_url_protocol = http #设置访问Harbor Admin UI的协议
max_job_workers = 50 #复制服务的最大工作数
customize_crt = on #生效证书功能,配合以下两条命令。使用外部证书请设置为off
ssl_cert = /data/cert/server.crt
ssl_cert_key = /data/cert/server.key
secretkey_path = /data #密匙存放路径
log_rotate_count = 50 #保留的日志循环数量
log_rotate_size = 200M #日志大小
#请根据实际情况配置邮箱
email_server = node3.test.com
email_server_port = 25
email_username = [email protected]
email_password = 123456
email_from = admin <[email protected]>
email_ssl = false
email_insecure = false
harbor_admin_password = Harbor12345 #设置管理员密码
auth_mode = db_auth #使用本地db认证模式,需要ldap认证请设置为:ldap_auth
self_registration = on #是否启动用户自助注册,如配置为ldap_auth,则此项不生效。
project_creation_restriction = everyone #设置用户创建项目的权限
安装
默认没有安装Notary或Clair,如需安装请使用--with-notary --with-clair
$ cd /opt/harbor
$ ./install.sh
...省略...
✔ ----Harbor has been installed and started successfully.----
Now you should be able to visit the admin portal at http://node3.test.com.
For more details, please visit https://github.com/vmware/harbor .
使用docker-compose来管理harbor的生命周期
$ cd /opt/harbor
$ docker-compose stop #停止harbor服务
$ docker-compose start #启动harbor服务
$ docker-compose down #删除harbor服务
三、使用harbor
使用流量器登录
http://node3.test.com/harbor/sign-in
使用账户admin 登录,密匙是之前设置:Harbor12345
新建项目用于存储本地镜像
如创建公共仓库,请点击勾选"公开",公共仓库无需使用"docker login"登录即可使用。
下图是新建好的仓库"local_registry"
四、在客户端推送镜像到harbor
推送命令范例
docker tag SOURCE_IMAGE[:TAG] node3.test.com/local_registry/IMAGE[:TAG]
docker push node3.test.com/local_registry/IMAGE[:TAG]
假设本地有一个nginx的镜像需要上传至harbor
查看本地镜像
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx 1.17 719cd2e3ed04 5 days ago 109MB
根据推送范例打标签
$ docker tag nginx:1.17 node3.test.com/local_registry/nginx:1.17
推送至harbor
$ docker push node3.test.com/local_registry/nginx:1.17
The push refers to repository [node3.test.com/local_registry/nginx]
d7acf794921f: Pushed
d9569ca04881: Pushed
cf5b3c6798f7: Pushed
1.17: digest: sha256:079aa93463d256ecf24ade92c9a7fe size: 948
在harbor新建的项目中可以查看到上传的镜像
从harbor中拉取镜像
$ docker pull node3.test.com/local_registry/nginx:1.17
1.17: Pulling from local_registry/nginx
Digest: sha256:079aa93463d256ecf24ade92c9a7fe
Status: Downloaded newer image for node3.test.com/local_registry/nginx:1.17
尾声
通过本例,大家可以初步搭建一个本地的镜像仓库。本地的仓库可以快速推送与拉取镜像,配合CI/CD工具持续集成与部署。