搭建Harbor镜像仓库 HTTP Insecure Registry
(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