(6条消息) 搭建Harbor镜像仓库 HTTP Insecure Registry_锐意工作室-CSDN博客

 

文章目录
搭建Harbor镜像仓库 HTTP Insecure Registry
前言
参考文档
前置条件
安装配置过程
安装Docker
安装Docker Compose
下载Harbor安装包
安装Harbor
修改harbor.cfg配置文件
安装Harbor
访问Harbor
配置Harbor
关闭自行注册
设置为只能由admin创建project
配置垃圾回收策略
关闭/启动Harbor
使用Harbor
配置Insecure Registry
推送镜像到Harbor
从Harbor中拉取镜像
后记
搭建Harbor镜像仓库 HTTP Insecure Registry
前言
在开发容器化应用时候,出于网络传输和安全的考虑,十分有必要在内网搭建一个私有镜像仓库(private registry)。

Docker本身提供了Docker registry来搭建简单的私有镜像仓库,但是功能比较单一,难以满足“企业级镜像仓库”的需要。

关于搭建和使用Docker registry参见:

一键搭建Docker private registry并使用阿里云镜像加速器
Docker registry V2 推送镜像、拉取镜像、搜索镜像、删除镜像和垃圾回收
Harbor是VMWare的一个开源项目,对Docker registry进行了扩展,实现了企业级镜像仓库的功能。

关于Harbor的更多介绍参见:

Harbor官网:https://goharbor.io/
Harbor in GitHub:https://github.com/goharbor/harbor
本文介绍了搭建Harbor镜像仓库(HTTP Insecure registry)的过程,关于搭建HTTPS Secure registry的过程将在另外的文章中介绍。

参考文档
Harbor安装配置指南:https://github.com/goharbor/harbor/blob/master/docs/installation_guide.md
Harbor用户指南:https://github.com/goharbor/harbor/blob/master/docs/user_guide.md
前置条件
CentOS7
联网
安装配置过程
这里选择的是Harbor in Docker的部署方式,需要先安装Docker和Docker Compose。

安装Docker
参见下面文章安装Docker,并使用阿里云镜像加速器:

CentOS7用阿里云Docker Yum源在线安装Docker 17.03.2

Docker国内Yum源和国内镜像仓库

安装Docker Compose
参见:

在线安装Docker Compose
下载Harbor安装包
在Harbor GitHub上的Release页面 上下载Harbor offline installer。

安装Harbor
把下载的Harbor offline installer安装包上传到服务器上一个新的空目录,解压安装包:

tar xvf harbor-offline-installer-v1.7.1.tgz
mv harbor /opt/
1
2
修改harbor.cfg配置文件
在安装Harbor前需要先修改harbor.cfg配置文件,因为这里只是创建一个简单的HTTP Insecure Registry,因此只需要修改:

hostname = <your_server_ip>
db_password = <your_db_password>
1
2
Harbor Admin的密码和一些系统的配置可以等到启动Harbor后再在Harbor管理页面修改。

安装Harbor
在Harbor根目录下运行sudo ./install.sh来安装Harbor。

如果没有先安装好Docker和Docker Compose,则可能会安装失败。

安装成功后运行docker-compose ps检查Harbor是否启动成功。

访问Harbor
在浏览器中输入http://<harbor_host_name>就可以访问Harbor了。

Harbor Admin的默认密码是admin/Harbor12345。

在页面右上角可以选择语言。

配置Harbor
安装并启动Harbor后还需要对Harbor做一些配置。

对Harbor的更多配置说明请参考Harbor User Guide

关闭自行注册
Harbor默认允许自行注册,可以用admin登录后来关闭自行注册功能:

打开Configuration -> Authentication
取消勾选“Allow Self-Registration”
关闭自行注册功能后,首页上就看不到账号注册的链接了。

如果采用的是默认的db_auth模式,则需要通过admin来创建Harbor新账号。

设置为只能由admin创建project
Harbor通过project来管理镜像,默认所有账号都可以创建project,可以用admin登录后设置成只能由admin创建project:

打开Configuration -> System Settings
选择Project Creation为“Admin Only”
配置垃圾回收策略
在Harbor中删除镜像后,并不会真的从磁盘上删除掉镜像文件。

为了节约磁盘空间,需要定期执行垃圾回收。

使用admin登录后来配置垃圾回收策略:

打开Configuration -> Garbage Collection
点击Edit按钮,选择Garbage Collection Schedule
关闭/启动Harbor
在Harbor根目录下运行以下命令:

# 关闭Harbor
docker-compose stop
# 启动Harbor
docker-compose start
1
2
3
4
使用Harbor
在Harbor页面上的使用比较简单,这里主要讲在命令行下通过Docker命令来操作镜像仓库。

配置Insecure Registry
在Harbor HTTP Insecure Registry模式时,必须先配置Docker允许使用Insecure Registry。

编辑/etc/docker/daemon.json,增加insecure-registries的配置。

一个包含了阿里云镜像加速器和指向Harbor HTTP Insecure Registry的Docker daemon.json示例:

{
"registry-mirrors": ["https://xxx.mirror.aliyuncs.com"],
"insecure-registries": ["192.168.37.170"]
}
1
2
3
4
注意:insecure-registries的值需要和harbor.cfg中的hostname保持一致,否则会docker login失败,比如上面的例子中不能写成http://192.168.37.170。

重新加载daemon,并重启Docker:

sudo systemctl daemon-reload
sudo systemctl restart docker
1
2
运行docker info翻到最后查看Registry Mirrors和Insecure Registries是否配置正确。

运行docker login输入Harbor账号的用户名和密码登录。

推送镜像到Harbor
在docker login成功后可以将一个现成的镜像push到Harbor的project中。

将busybox:latest镜像push到Harbor的myproject项目中的示例:

# Retag
docker tag busybox:latest 192.168.37.170/myproject/busybox:latest
# Push
docker push 192.168.37.170/myproject/busybox:latest
1
2
3
4
从Harbor中拉取镜像
在docker login成功后可以从Harbor的project中拉取指定镜像,比如:

docker pull 192.168.37.170/myproject/busybox:latest
1
后记
本文只是讲了Harbor HTTP Insecure Registry这种最为简单的模式。

如何搭建Harbor HTTPS Secure Registry请参考:

配置Harbor镜像仓库HTTPS Secure Registry
如何对镜像进行安全扫描则在后续文章中再进行介绍。
————————————————
版权声明:本文为CSDN博主「nklinsirui」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/nklinsirui/article/details/87924176

发表评论

邮箱地址不会被公开。 必填项已用*标注