关于Docker Registry v2的搭建

搭建 Docker 私有仓库 Registry-v2 从 docker v1.12 开始,docker 就不支持从 HTTP 仓库下载镜像,建立私有仓库必须走 HTTPs 加密协议。本文收集了网上中文、官方资料,总算搞定了自己签名证书的私有仓库。 阅读详情
新版 registry v2对镜像存储格式进行了重新设计,并且和旧版还不兼容。registry v2是由go语言开发,docker从1.6版本开始支持registry v2,之前python开发的老版registry在网上已被标为废弃了(没有维护更新,但也可以用)。

之前在测试环境搭建了一个老版的registry,用了也比较久了。为了跟上技术的脚步,也准备今后使用新版registry v2。由于对旧版是不兼容的,所以之前仓库的数据目录还不能直接拿来挂载,只好重新做个新的,镜像只好等以后慢慢再放上去了。下面对我这次配置的步骤简单的介绍一下。

0. 服务器环境
本次使用centos7.1的操作系统,服务器IP假设为:192.168.0.100
预先装好docker服务,操作如下:
[plain]  view plain  copy
  1. yum install docker -y  
  2. systemctl enable docker  
  3. systemctl start docker  

1. 获取最新的registry的容器
了解到目前最新版为2.4.1,于是直接使用docker pull命令从公用仓库去拉即可
[plain]  view plain  copy
  1. docker pull registry:2.4.1  

2. 运行registry:2.4.1容器
这里需要注意的是新registry仓库数据目录的位置。之前老版的位置是/tmp/registry,hub.docker.com上的演示 命令里写的是 /tmp/registry -dev,其实这个不对。试验证明,新registry的仓库目录是在/var/lib/registry,所以运行时挂载目录需要注意。
[plain]  view plain  copy
  1. docker run -d -p 5000:5000 --restart=always \  
  2.   -v /opt/registry-var/:/var/lib/registry/ \  
  3.   registry:2.4.1  
-v选项指定将/opt/registry-var/目录挂载给/var/lib/registry/
当使用curl http://192.168.0.100:5000/v2/_catalog能看到json格式的返回值时,说明registry已经运行起来了。

3. 修改配置文件以指定registry地址
上面registry虽然已经运行起来了,但是如果想用push命令上传镜像是会报错的,需要在配置文件中指定registry的地址。在/etc/sysconfig/docker文件中添加一下配置:
[plain]  view plain  copy
  1. ADD_REGISTRY='--insecure-registry 192.168.0.100:5000'  
为了配置简单,省去安全相关的配置,这里使用--insecure-registry选项。
修改配置文件后,一定要重启docker服务才能生效,所以:
[plain]  view plain  copy
  1. systemctl restart docker  
这时再push就可以上传镜像到所搭建的registry仓库了。需要注意的是,上传前要先给镜像tag一个192.168.0.100:5000/为前缀的名字,这样才能在push的时候存到私库。
[plain]  view plain  copy
  1. docker tag docker.io/registry:2.4.1 192.168.0.100:5000/registry:2.4.1  
  2. docker push 192.168.0.100:5000/registry:2.4.1  

4. 配置带用户权限的registry
到上面为止,registry已经可以使用了。如果想要控制registry的使用权限,使其只有在登录用户名和密码之后才能使用的话,还需要做额外的设置。
registry的用户名密码文件可以通过htpasswd来生成:
[plain]  view plain  copy
  1. mkdir /opt/registry-var/auth/  
  2. docker run --entrypoint htpasswd registry:2.4.1 -Bbn felix felix  >> /opt/registry-var/auth/htpasswd  
上面这条命令是为felix用户名生成密码为felix的一条用户信息,存在/opt/registry-var/auth/htpasswd文件里面,文件中存的密码是被加密过的。
使用带用户权限的registry时候,容器的启动命令就跟上面不一样了,将之前的容器停掉并删除,然后执行下面的命令:
[plain]  view plain  copy
  1. docker run -d -p 5000:5000 --restart=always \  
  2.   -v /opt/registry-var/auth/:/auth/ \  
  3.   -e "REGISTRY_AUTH=htpasswd" \  
  4.   -e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" \  
  5.   -e REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd \  
  6.   -v /opt/registry-var/:/var/lib/registry/ \  
  7.   registry:2.4.1  
这时,如果直接想查看仓库信息、pull或push都会出现权限报错。必须先使用docker login 命令来登录私有仓库:
[plain]  view plain  copy
  1. docker login 192.168.0.100:5000  
根据提示,输入用户名和密码即可。如果登录成功,会在/root/.docker/config.json文件中保存账户信息,这样就可以继续使用了
【docker系列】使用registry-v2搭建镜像仓库及完成镜像分发 目前广泛应用的Docker 官方提供的私有仓库是Docker Registry V2,下面我们就来学习一下如何搭建及使用它。 阅读详情

相关推荐

[DockerRegistry]搭建Docker Registry v2

docker registry v2

急速虫子 3832

使用Docker Registry-v2搭建镜像仓库详细教程

这条命令的作用是将本地的 mysql:8.0 镜像重新打上标签,使其在本地的 Docker Registry 地址为 192.168.144.140:5000 下,标签仍为 8.0。当我们就可以向仓库提交镜像,会发现镜像根本提交不上去,这是因为Docker Registry V2从安全角度考虑禁止了HTTP协议传输镜像数据,默认支持HTTPS。使用docker镜像启动私有仓库容器服务,将容器内/var/lib/registry路径映射到宿主机/opt/registry用于持久化保存仓库中的镜像。

一位菜鸡的博客 4093

企业级docker registry v2认证服务器搭建

       目前较为流行的搭建私有镜像仓库的方式是通过部署开源项目harbor来实现,该开源项目中带有镜像仓库认证服务,但使用的是自带的数据库,也就是说如果要对接到一个已有的系统中,需要将用户数据以及角色同步到harbor的系统中,虽然不会存在什么数据安全的问题(生产环境中肯定是内网部署,数据安全还是比较有保障的),但是数据同步是个很麻烦的问题,很容易出现数据同步不一致的问题,因此最好的方式就是...

schzrj的专栏 708

搭建Docker Registry v2

一、搭建Docker Registry v2 1)预装好docker服务 yum install docker -y systemctl enable docker systemctl start docker 2)获取最新的registry的容器 了解到目前最新版为2.4.1,于是直接使用docker pull命令从公用仓库去拉即可 docker p

IT_BOY__的博客 862

量子密钥分发系统的设计与实现(二):光路子系统初步讨论

本文主要对量子密钥分发系统中的光路子系统方案进行了讨论。

量子领域相关话题 2407

ElementUI中的el-table解决宽度问题 - 根据内容自动撑开

在使用element-ui中,会发现表格组件el-table在未指定宽度情况下,会自动计算并给表格宽度赋值。但实际开发中,有时需要根据内容实际长度自动撑开显示,由内容的多少而决定表格的宽度,而不是默认宽度为100%。在默认情况下表格宽度为100%显示,并且列项未指定宽度情况下,剩余部分会平均分配宽度,本案例实际需求是由内容自动撑开显示。componentUpdated

觉醒法师的专栏 1万+

docker registry V2私有仓库搭建

文章来自  http://www.zimug.com/317.html 向您推荐 Dcoker入门与实践系列文章 欢迎加入QQ技术交流群:300139299 前提条件 docker版本大于1.6.0 创建registry server端 下载镜像 docker pull registry:2.2 生成自签名证书 cd ~/; mkdir

u010753907的博客 551

AI训练加速30%!用numactl玩转多显卡绑核的隐藏技巧

本文深入探讨了如何利用Linux系统的numactl工具,通过精确的NUMA绑核策略优化多GPU AI训练性能。文章详细解析了NUMA架构对性能的影响,提供了从拓扑探查、命令实战到多卡脚本化部署的完整指南,并分享了性能验证与常见陷阱,帮助开发者实现高达30%的训练加速。

web99的专栏 449

docker registry v2 搭建

距离 Docker Registry 升级到V2已经有一年多,最近在尝试搭建v2的环境。虽说v2的存储结构变的更加合理以及安全,但是就目前的版本而言,感觉真是不是很好用!具体真正方便使用还有好长一段距离,先不管这个,我们先介绍搭建过程. 搭建过程很曲折,看了很多的资料才成功,希望这篇记录能帮到各位。注:本博客部分内容是复制的imkh(简书作者),来...

weixin_34228387的博客 572

香橙派R1 Plus LTS变身无线AP/客户端:手把手教你用RTL8811CU和MT7601U网卡刷OpenWRT

本文详细介绍了如何将香橙派R1 Plus LTS开发板通过RTL8811CU和MT7601U两款USB无线网卡刷入OpenWRT系统,实现无线AP热点发射与客户端接入的双重功能。从硬件选型、驱动安装到双网卡协同配置,提供完整的实战指南,帮助用户快速搭建稳定高效的无线网络解决方案。

weixin_30919429的博客 410

CMake安装grpc生成gRPCTargets.cmake文件

以下是安装语句: cd grpc_folder git submodule update --init cmake .. make -j 4 sudo make install 然而编写依赖gRPC的程序,发现无法调用gRPC的CMake文件,错误提示如下所示: include could not find load file: /usr/local/lib/cmake/g...

2331

docker registry-v2 搭建私有仓库

参考官方文档:https://docs.docker.com/registry/deploying/ 参考:http://www.tuicool.com/articles/6jEJZj 本例子使用两台centos7虚拟机作为测试 node0:192.168.56....

chongpuyu0410的博客 166

亚马逊爬虫实战:中国商家信息(电话)爬取

import os), # 保存图片的路径# 搜索关键词"keywords":["毛巾","衣服"],"product_number": 1000000000000000, # 分页获取数量# 和url一一对应 个数要一样"remarks": ["备注1"],# 以下内容非专业人员请勿更改,请找开发人员更改. 对应的是amazon_product_url_setting文件中名称.},

youbingchen的博客 1526

docker私有仓库registry(v2)的搭建

1、上传rpm文件,解压 yum文件: 链接:https://pan.baidu.com/s/1_tSwm2jqXqrV2mbMk0C80g 提取码:5gd7 [root@k8smaster01 zhaiky]# unzip yum.zip Archive: yum.zip creating: yum/ inflating: yum/docker-1.13.1-103.git7...

zhaikaiyun的博客 2251

【TC397第23篇】深度解析TC397 EB MCAL开发系列:UART配置与POLL模式数据交互

通过本文,我们深度解析了TC397 EB MCAL开发系列中UART配置的POLL模式下的数据交互。从技术要点的介绍到实际案例的演示,希望读者能够更好地理解UART在POLL模式下的配置与应用。这不仅是对嵌入式系统开发的一次深刻探索,更是为项目提供了一种高效通信的解决方案。在未来的文章中,我们将继续深入研究嵌入式系统开发的各个方面,为广大开发者提供更多实用的技术知识。敬请期待,一同迎接嵌入式技术的新篇章!

一直在水些技术小文 470

第八章 Vite4+Vue3+Vtkjs 完整demo演示

vtk.js是一个基于WebGL的开源3D可视化库,它可以在Web浏览器中呈现高质量的3D图形。vtk.js提供了一个易于使用的API,可以用于创建各种类型的3D可视化,包括科学、医学、工程和地球科学等领域。vtk.js支持多种数据格式,包括VTK、DICOM、STL等,可以轻松地将数据导入到可视化中。此外,vtk.js还支持交互式可视化,用户可以通过鼠标和键盘进行交互,探索和分析数据。采用的vite4+pinia搭建的Vue3项目。

Wait.End的博客 2235

docker registry v2与harbor的搭建

docker的仓库 1registry的安装 docker的仓库我们可以使用docker自带的registry,安装起来很简单,但是可能有点使用起来不是很方便。没有图形化。 开始安装 1 使用镜像加速器 2 curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://dc945b6d.m.daocl...

weixin_34360651的博客 268

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

Docker Registry-v2私有镜像仓库实战:从搭建到安全配置全解析

本文详细解析了Docker Registry-v2私有镜像仓库的搭建与安全配置全流程,涵盖基础环境准备、镜像上传下载、HTTPS加密、基础认证等关键步骤,并提供了日常维护与故障排查的实用技巧,助力企业实现高效安全的私有化镜像管理。

weixin_28323057的博客 404

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

docker registry v2 ssl 环境搭建

去年有搭建过 docker registry v1 版本,不过 registry v2 之后发生了点变化,所以又折腾了下,在此记录步骤 这边我主要说下 nginx 一、准备基础镜像 centos7 docker 官网下载 image 实在太慢了,所以我一般下载都是通过 daocloud 的hub来下载的,地址 https://hub.daocloud.io/ docker 下载命令:

wanglei_storage的博客 3863

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

上一篇: docker registry push错误“server gave HTTP response to HTTPS client”
下一篇: Docker Registry服务器部署配置
hxpjava1
博客等级 码龄19年 1365粉丝 511原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值