本文共 3152 字,大约阅读时间需要 10 分钟。
从安全和效率等方面考虑,部署在私有环境内的 Registry 是非常必要的,这里我是用的是Harbor这款VMware 公司中国团队为企业用户设计的 Registry server 开源项目
一:简介
Harbor是一个用于存储和分发Docker镜像的企业级Registry服务器。镜像的存储harbor使用的是官方的docker registry(v2命名是distribution)服务去完成。harbor在docker distribution的基础上增加了一些安全、访问控制、管理的功能以满足企业对于镜像仓库的需求。harbor以docker-compose的规范形式组织各个组件,并通过docker-compose工具进行启停。
docker的registry是用本地存储或者s3都是可以的,harbor的功能是在此之上提供用户权限管理、镜像复制等功能,提高使用的registry的效率。Harbor的镜像拷贝功能是通过docker registry的API去拷贝,这种做法屏蔽了繁琐的底层文件操作、不仅可以利用现有docker registry功能不必重复造轮子,而且可以解决冲突和一致性的问题。
二:Harbor架构
三:主要组件
四:安装
实验环境
CentOS Linux release 7.7.1908 (Core)
Docker version 19.03.5, build 633a0ea
docker-compose version 1.25.0, build b42d419
注:由于Harbor是基于Docker Registry V2版本,所以就要求Docker版本不小于1.10.0,Docker-compose版本不小于1.6.0
yum -y install docker-compose
如果安装不上就先安装epel-release源,然后安装docker-compose,yum安装的docker-compose比pip 安装的版本要低
安装Harbor
因为是在内网使用所以没有使用https模式
tar xf harbor-offline-installer-v1.9.0.tgz
cd harbor
vim harbor.yml
hostname 设置访问地址。可以使用ip、域名、主机名,不可以设置为127.0.0.1或localhost。(如果部署的是备份库,填写ip而不是域名,否则会导致仓库管理连接失败,host无法识别原因不明)
检测并创建harbor需要文件
./prepare(这部如果不需要HTTPS就不要做,不然没有做证书的情况下HTTP无法登录)安装
./install.sh
Harbor安装就完成了 在浏览器验证
向仓库中推送一个本地的镜像
获得推送镜像的地址
给要推送的镜像打标签
docker tag b534869c81f0 192.168.2.101/library/busybox:v1
向 Harbor推送
推送前先要登录Harbor
因为Docker现在login方式默认为Https如果Harbor没有配置成Https方式,需要修改docker配置文件
vim /usr/lib/systemd/system/docker.service
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock -H tcp://192.168.2.102 --insecure-registry=192.168.2.0/23
在ExecStart行添加 --insecure-registry=192.168.2.0/23
修改完成后重启Docker和Docker-compose
或修改/etc/docker/daemon.json
vim /etc/docker/daemon.json
"insecure-registries": ["192.168.2.41:5000"]
insecure-registries": ["192.168.2.41"] : 仓库认证地址
live-restore": true : 容器随docker启动
重启docker
systemctl restart docker.service
登录
docker login 192.168.2.101
向Harbor推送制作好的镜像
docker push 192.168.2.101/library/busybox:v1
转载地址:http://mmepb.baihongyu.com/