当前位置: 首页 > news >正文

13-docker的轻量级私有仓库之docker-registry

文章目录

  • 一.私有仓库概述
    • 1.为什么要有私有仓库
    • 2.主流的私有仓库有哪些
  • 二.部署docker-registry
    • 1.下载镜像
    • 2.启动registry私有镜像仓库
    • 3.查看镜像地址
  • 三.将镜像上传到私有镜像仓库
    • 1.为镜像打tag
    • 2.添加信任仓库,默认协议是https协议,而我们刚刚搭建的私有仓库是http协议。
    • 3.上传镜像
  • 四.使用镜像
    • 1.下载镜像
    • 2.删除本地镜像
    • 3.其它操作
  • 五.删除registry私有仓库中的镜像文件
    • 1.进入到registry的容器中
    • 2.删除元数据信息
    • 3.手动回收无用文件
  • 六.可能会遇到的错误
    • 1.http: server gave HTTP response to HTTPS client

一.私有仓库概述

1.为什么要有私有仓库

	使用私有仓库之前,我们需要分析为什么要有私有仓库,可参考以下两点:(1)速度慢,官方的镜像仓库在国外,访问速度不言而喻;(2)安全性底,如果企业开发的核心代码上传到官方的镜像仓库,这意味着大家都能看到企业内部的代码;综上所述,我们急需一款私有仓库的解决方案

2.主流的私有仓库有哪些

	对于docker的私有仓库有很多,但相对主流的我们课程里只会涉及两款,即docker-registry和harbordocker-registry:是一个轻量级的镜像仓库,基本上不太占用内存,很适合学习环境中使用harbor:对内存有要求,宿主机最少得拥有2G内存,对于个别用户,可能它相对重量级了,但对于企业它是主流

二.部署docker-registry

1.下载镜像

[root@docker01 ~]# docker images
[root@docker01 ~]# docker pull registry

2.启动registry私有镜像仓库

docker run -d -p 5000:5000 --restart=always --name buffes-image-registry -v /var/lib/registry registrydocker container run -d -p 5000:5000 --restart=always --name buffes-registry -v /var/lib/registry registry#需要在docker 配置文件中添加  "insecure-registries": ["10.0.0.26:5000"] 
[root@docker03 ~]# cat /etc/docker/daemon.json 
{
"registry-mirrors": [
"https://proxy.1panel.live",
"https://docker.1panel.top",
"https://docker.m.daocloud.io",
"https://docker.1ms.run",
"https://docker.ketches.cn",
"https://dockerhub.timeweb.cloud",
"https://hub.registry-mirrors.top"
],"insecure-registries": ["10.0.0.26:5000","10.0.0.24"]
}[root@docker03 ~]# systemctl restart docker.service 浏览器访问
http://10.0.0.26:5000/v2/_catalog

3.查看镜像地址

访问:"http://docker201.buffes.com:5000/v2/_catalog"[root@docker01 ~]# curl http://docker201.buffes.com:5000/v2/_catalog

三.将镜像上传到私有镜像仓库

1.为镜像打tag

[root@docker01 ~]# docker tag mysql:8.0 docker01.buffes.com:5000/buffes/mysql:8.0
[root@docker01 ~]# docker image ls温馨提示:我们要为镜像打上相应的tag,以便于方便咱们将其上传到指定的镜像仓库。默认是官方的镜像仓库。

2.添加信任仓库,默认协议是https协议,而我们刚刚搭建的私有仓库是http协议。

[root@docker01 ~]# vim /etc/docker/daemon.json 
[root@docker01 ~]#  cat >>/etc/hosts<<EOF
10.0.0.201 docker01.buffes.com
EOF
[root@docker01 ~]# cat /etc/docker/daemon.json 
{"registry-mirrors": ["https://tuv7rqqq.mirror.aliyuncs.com"],"insecure-registries": ["docker01.buffes.com:5000"]
}[root@docker01 ~]# systemctl restart docker温馨提示:记得重启docker服务使之生效。

3.上传镜像

[root@docker01 ~]# docker image push docker01.buffes.com:5000/buffes/mysql:8.0 温馨提示:镜像推送成功后,请查看registry中是否有记录哈。

四.使用镜像

1.下载镜像

[root@docker01 ~]# docker image pull docker01.buffes.com:5000/buffes/mysql:8.0温馨提示:如下图所示,在下载镜像的时候,请确保"/etc/docker/daemon.json"和"/etc/hosts"中的数据。

2.删除本地镜像

[root@docker01 ~]# docker image ls -a
[root@docker01 ~]# docker image rm docker01.buffes.com:5000/buffes/mysql:8.0 温馨提示:是否发现下载镜像和删除镜像都一样了,本来就是,因为我们依旧是使用的镜像管理命令。

3.其它操作

由于操作基本上一样,我就不一一展示了。

五.删除registry私有仓库中的镜像文件

1.进入到registry的容器中

[root@docker01 ~]# docker container exec -it registry sh

在这里插入图片描述

2.删除元数据信息

/var/lib/registry/docker/registry/v2 #  rm -rf repositories/buffes/mysql/

在这里插入图片描述

3.手动回收无用文件

/ # registry garbage-collect /etc/docker/registry/config.yml /var/lib/registry/docker/registry/v2 # registry garbage-collect /etc/distribution/config.yml
温馨提示:回收无用文件后,不难发现镜像的存储空间也得到了部分释放哟~

在这里插入图片描述

六.可能会遇到的错误

1.http: server gave HTTP response to HTTPS client

报错原因:默认协议是https,而我们的仓库响应的http协议。解决方案:[root@docker01 ~]# vim /etc/docker/daemon.json [root@docker01 ~]# cat /etc/docker/daemon.json {"registry-mirrors": ["https://tuv7rqqq.mirror.aliyuncs.com"],"insecure-registries": ["docker01.buffes.com:5000"]}
http://www.dtcms.com/a/327936.html

相关文章:

  • 网络安全第1—2天笔记
  • 【19】万集科技——万集科技嵌入式,校招 一面,二面,面试问答记录
  • 数据分析与可视化
  • Unity数据可视化图表插件XCharts
  • CS2服务器是何方神圣
  • 21.Linux HTTPS服务
  • imx6ull-驱动开发篇20——linux互斥体实验
  • mimiconda+vscode
  • Ceph的FileStore存储引擎详解
  • Ceph放置组(PG)详解
  • 石头剪刀布手势识别数据集-3,100 张图片 智能游戏系统 人机交互界面 教育娱乐应用 手势识别技术研究 实时视频分析 移动端AI应用
  • 8 反向引用
  • cartographer 后端优化流程
  • 渗透测试现已成为 CISO 战略的核心
  • @RequestMapping接收文件格式的形参(方法参数)
  • 数字孪生赋能全场景智慧化:从水利工厂到城市治理的综合解决方案
  • Akamai字符串解混淆
  • RSA各种密钥格式
  • C++ Rust与Go
  • 【taro react】 ---- 实现 RuiPaging 滚动到底部加载更多数据
  • 使用 Docker 一键部署火山引擎 Sandbox-Fusion,并开放 8182 端口
  • QT6 如何在Linux Wayland 桌面系统抓屏和分享屏幕
  • 力扣hot100 | 双指针 | 283. 移动零、11. 盛最多水的容器、42. 接雨水
  • 2787. 将一个数字表示成幂的和的方案数
  • 三维工厂设计软件 AutoCAD Plant 3D 安装图文教程
  • 3DTiles转OSGB格式逆向转换方法研究
  • 国产3D大型装配设计新突破②:装配约束智能推断 | 中望3D 2026
  • Go之封装Http请求和日志
  • 【新启航】飞机起落架减震筒的深孔测量方法探究 - 激光频率梳 3D 轮廓检测
  • 简单认识CSRF