搭建私有仓库的两种方式:
Registry
Harbor
一、registry的搭建
docker官方提供了一个搭建私有仓库的镜像registry,只需下载镜像,运行容器并暴露5000端口即可。
registry服务默认会将上传的镜像保存在容器的 /var/lib/registry,我们将主机的 /opt/registry目录挂载到该目录,即可实现将镜像保存到主机的 /opt/registry目录了。
浏览器访问 http://192.168.100.107:5000/v2,出现下面情况说明registry运行正常。
验证:
通过推送镜像到registry,来验证一下。
查看本地镜像。
给镜像打标签。
[root@dokcer ~]# [root@dokcer ~]# docker tag mysql:latest localhost:5000/mysql:666 标签格式:server端 ip + 端口 + 镜像名(必须)
通过docker push命令将镜像推送到远程仓库。
访问http://192.168.100.107:5000/v2/_catalog查看私有仓库,就可以看到刚刚上传的镜像了。
打开192.168.100.102,从102往107推送镜像。
102使用docker下载redis镜像。
给redis打标签并查看。
往107上推送redis镜像。
报错提示 不支持http只支持https 解决方法如下:
在102上执行
{
"registry-mirrors": ["https://w4uieobw.mirror.aliyuncs.com"],
"insecure-registries": ["192.168.100.107:5000"]
}
配置完重启docker生效。
再次推送。
推送成功后访问http://192.168.100.107:5000/v2/_catalog,可以看到我们往仓库推送的nginx镜像。
二、搭建harbor私有镜像仓库
什么是Harbot?
VMware的开源项目https://github.com/vmware/harbor
harbor可帮助用户迅速搭建企业级的注册服务。它提供了管理图形界面,基于角色的访问控制(Role Based Access Control),镜像远程复制同步,AD/lDAP集成,以及审计日志等企业用户需求的功能,同时还 原生支持中文。
组件 作用
Proxy 通过一个前置的反向代理统一接收浏览器、Docker客户端的请求,并将请求转发给后端不同的服务
Registry (核心组件)负责储存Docker镜像,并处理docker push/pull命令
Core services Harbor的核心功能, 包括UI、webhook、 token服务
Database 为core services提供数据库服务
Log collector 负责收集其他组件的log,供日后进行分
安装部署前置条件
- 在安装harbor的服务器上先安装docker (过程略)
下载并解压harbor 下载:https://github.com/goharbor/harbor/releases/tag/v1.7.5
[root@dokcer ~]# tar xf harbor-offline-installer-v1.7.5.tgz -C /usr/local/
安装docker-compse
wget "https://github.com/docker/compose/releases/download/1.24.0/docker-compose-$(uname -s)-$(uname -m)" -O /usr/local/bin/docker-compose
安装harbor
## 编辑该文件
## hostname修改为本机IP
## 安装harbor
从102往107上传镜像
## 可以看到仓库上已经有了
## 107本地查看镜像,此时无tomcat:666
## 从仓库拉取镜像
## 再次查看,拉取成功。