docker私有镜像仓库搭建和镜像删除

author author     2023-03-02     174

关键词:

参考技术A docker私有镜像仓库一般用来存放公司内部的镜像,比如微服务中会有很多的服务需要放到自己公司内部的镜像仓库上,发布的时候直接从私有镜像仓库拉取。比如我公司的微服务部署在k8s环境上,微服务技术依然选择熟悉的 Spring Cloud ,这样每一个服务其实就是一个 Spring Boot 项目,我们通过Maven的插件会在项目编译、打包之后推送到我们的私有镜像仓库,之后CI工具使用kubelet部署的时候会从私有镜像仓库拉取镜像,最后完成部署,可以说私有镜像仓库是非常重要的一个环节。
接下来我会主要讲述一下私有镜像仓库的搭建以及镜像的管理,包括一些自己遇到的问题。
首先要保证自己的服务器已经安装了 docker 。具体的安装教程可以看 官网 ,这里就不在赘述了。

首先我们需要创建一个自己的CA证书,

比如下图是我自己创建时输入的相关内容:

做好镜像存储目录和证书目录的挂载,运行即可

这一步需要在所有需要拉取镜像的服务器上执行。上月底我在部署正式环境时我就遇到了这个问题,k8s的节点上一直显示拉取镜像失败,后来才发现忘了在k8s服务器上配置证书。

hostname 即生成CA证书的时候最后输入的 hostname , port 镜像仓库对外暴露的端口号。

如果是在镜像仓库所在的服务器上,执行:

如果不是同一台服务器,同样需要存放创建证书目录,执行:

之后将证书上传到目标服务器,且放在证书目录下,名称为 ca.crt 。

为了测试,我拉取一个 redis 镜像,然后给它重新打一个 tag 。

推送到私有镜像仓库:

浏览器显示:

表示刚才推送到私有镜像仓库是成功的。接下来我们测试从另一台服务器拉取刚才的镜像。当然这台服务器一定要按照之前的描述配置好CA证书,还要修改服务器 hosts 文件,配置好 ip 和 hostname 。
拉取镜像:

拉取镜像如下图所示:

根据显示可以看出拉取镜像是成功的。
到这里镜像仓库的搭建、推送和拉取都讲完了,接下来就看看怎么删除镜像。

这里说的删除镜像是指从仓库中删除,即从服务器上删除。在构建仓库的时候我们将镜像的仓库容器内的目录挂载到了服务器的目录。镜像仓库内其实是没有镜像文件,都在服务器对应的目录下。在开发的时候我就遇到过这样一个问题,因为是开发环境项目编译、打包、镜像构建和推送都非常频繁,虽然新的镜像会覆盖老的镜像,但是原有的镜像文件本身并没有被覆盖,这样的结果就是虽然镜像仓库上看镜像只有一个,但是本地服务上存储的是很多个镜像文件(而且基本是没啥用的),最终导致了服务磁盘空间不足的情况。

我们依然以 Redis 举例,我将多不同版本的 Redis 多次像私有仓库推送,不管是 Redis 4.0、5.0、6.0,最终我向仓库推送的版本号都是 redis:v4 (过程省略),最终我们在镜像仓库目录( /home/registry/ )下可以看到有多个 sha256 的值,详细目录:
/home/registry/docker/registry/v2/repositories/redis/_manifests/revisions/sha256

如下图:

如果要删除镜像首先需要修改配置文件,进入到docker容器内:

保存之后退出容器。
我们进入到存放镜像的目录下,删除一个镜像的 sha256 的值

上面只是删除了镜像的 sha256 值,并没有删除镜像本身,我们需要调用垃圾回收的命令:

这时候会看到一些输出,比如:

这时候我们在查看下对应目录的磁盘使用情况:

但是变化不明显,那就在删除一个试试。

除了手动删除之外还可以通过API来删除,这个方法我没有测试,感兴趣的小伙伴可以测试一下。在实际过程中我也是使用上述方法删除的,因为我一般都是磁盘使用率到一定比例才进行批量删除的,另外网上也有人通过脚本,感兴趣的小伙伴都可以尝试一下。

删除可以使用使用官方API删除:

查询镜像的 sha256 的值:

今天关于docker私有镜像仓库的内容就讲到这里,如果对上面内容有什么疑问欢迎大家交流探讨,也欢迎大家多多点赞、分享、转发,谢谢大家~~~​

docker(4)搭建私有镜像仓库(代码片段)

【Docker】(4)搭建私有镜像仓库说明1、这里是通过阿里云,搭建Docker私有镜像仓库。2、这里打包的镜像是从官网拉下来的,并不是自己项目创建的新镜像,主要测试功能一、搭建过程首先进入阿里云创建镜像仓库:https://dev.aliyun.... 查看详情

搭建docker私有仓库

...册,上传需要到公共仓库注册。公共仓库网站:https://hub.docker.com怎么新建和使用公共仓库,请百度。这里关注私有仓库的搭建。那么怎么构建属于自己的私有仓库呢?可以使用registry镜像来搭建本地的私有仓库。具体步骤如下:... 查看详情

搭建docker私有镜像仓库

参考技术A为了更方便的部署应用到Docker容器中,可以将打包应用镜像直接通过dockerpush命令推送到服务器所在地镜像仓库中,所以需要搭建私有镜像仓库。本文使用Docker公司开发的私有镜像裤Registry。如果registry版本在2.7以下可以... 查看详情

docker—搭建本地私有仓库(代码片段)

docker一、准备工作1.1下载registry镜像1.2添加镜像仓库地址二、开启容器三、测试3.1为镜像打标签3.2上传到私有的仓库3.3删除现有镜像,重新下载一、准备工作1.1下载registry镜像dockerpullregistry1.2添加镜像仓库地址在daemon.json文件... 查看详情

私有仓库harbor的搭建(代码片段)

私有仓库Harbor的搭建一、Harbor简介虽然Docker官方提供了公共的镜像仓库,但是从安全和效率等方面考虑,部署我们私有环境内的Registry也是非常必要的。Harbor是由VMware公司开源的企业级的DockerRegistry管理项目,相比docker官方拥有... 查看详情

docker进阶-搭建私有企业级镜像仓库harbor(代码片段)

为什么要搭建私有镜像仓库??对于一个刚刚接触Docker的人来说,官方的Dockerhub是用于管理公共镜像。既然官方提供了镜像仓库我们为什么还要去自己搭建私有仓库呢?虽然也可以托管私有镜像。我们可以非常方便的把我们自己镜像... 查看详情

docker镜像创建私有仓库搭建和数据管理(代码片段)

Docker镜像的创建方法Docker镜像除了是Docker的核心技术之外也是应用发布的标准格式。一个完整的Docker镜像可以支撑一个Docker容器的运行,在Docker的整个使用过程中,进入一个已经定型的容器之后,就可以在容器中进行操作,最常... 查看详情

如何搭建docker私有镜像仓库

.../blog.51cto.com/ganbing/2080140服务端机器(主机名为registry):docker私有仓库服务器,运行registry容器;节点机器(主机名为node):普通的docker服务器,在这台服务器上可以上传和下载镜像;1. 服务端下载镜像registrydockerpullregistry2.... 查看详情

微服务架构师-docker私有镜像仓库的配置和使用(代码片段)

文章目录docker私有化仓库介绍私有仓库介绍私有镜像仓库有哪些有优点?实验环境规划使用registry搭建docker私有仓库初始化实验环境-安装docker开启包转发功能和修改内核参数配置xuegod64为docker私有仓库服务端配置xuegod63上的doc... 查看详情

docker搭建私有仓库

...确定你服务器的5000端口没有被占用下载registry镜像并运行dockerrun-d–p5000:5000 查看详情

docker--镜像仓库(搭建私有镜像仓库向镜像仓库推送镜像从镜像仓库拉取镜像)(代码片段)

...荐)2.2带有图形化界面版本(推荐)2.2.1配置Docker信任地址2.2.2使用DockerCompose部署带有图象界面的DockerRegistry3.向镜像仓库推送镜像4.从镜像仓库拉取镜像1.镜像仓库1.1镜像仓库概念2.搭建私有镜像仓库搭建镜像仓库可以... 查看详情

docker私有仓库的搭建

Docker搭建本地私有仓库的详细步骤Dockers不仅提供了一个中央仓库,同时也允许我们使用registry搭建本地私有仓库。使用私有仓库有许多优点:一、节省网络带宽,针对于每个镜像,不用每个人都去中央仓库上面去下载,只需要从... 查看详情

docker本地仓库和私有仓库(代码片段)

docker本地仓库和私有仓库一、docker本地仓库1.首先下载registry镜像2.在daemon.json文件中添加私有镜像仓库地址3.运行registry容器docker容器重启策略4.为镜像打标签5.上传到私有仓库6.列出私有仓库的所有镜像7.列出私有仓库的centos镜像... 查看详情

docker本地仓库和私有仓库(代码片段)

docker本地仓库和私有仓库一、docker本地仓库1.首先下载registry镜像2.在daemon.json文件中添加私有镜像仓库地址3.运行registry容器docker容器重启策略4.为镜像打标签5.上传到私有仓库6.列出私有仓库的所有镜像7.列出私有仓库的centos镜像... 查看详情

docker入门与应用系列docker私有与公共镜像仓库

1.搭建私有镜像仓库DockerHub作为Docker默认官方公共镜像;如果想搭建自己的私有镜像仓库,官方提供registry镜像,使搭建私有仓库非常简单1.1.1下载registry镜像并启动dockerpullregistrydockerrun-d-v/opt/registry:/var/lib/registry-p5000:5000--restart=al... 查看详情

docker私有仓库以及dockershell

Docker搭建私有仓库公有云:比如百度云,dockerhub私有云:比如搭建到某个内网,docker搭建私有仓库:下载一个镜像docker默认使用的是dockerhubdocker仓库服务器就是docker注册服务器//注意dockerpull和dockerspush的区别,如将docker镜像上传... 查看详情

手动搭建docker本地私有镜像仓库(代码片段)

...拟机,一个是Server,用作客户端,另一个是Registry,用作Docker私有镜像仓库。基础配置查看一下两台虚拟机的IP地址Server的IP地址是192.168.134.151.Registry的IP地址是192.168.134.150.使用setenforce0临时关闭SElinux。打开Server和Registry的内核转... 查看详情

docker私有仓库harborregistry安全认证搭建[https]

Harbor源码地址:https://github.com/vmware/harborHarbort特性:基于角色控制用户和仓库都是基于项目进行组织的,而用户基于项目可以拥有不同的权限。基于镜像的复制策略镜像可以在多个Harbor实例之间进行复制。支持LDAPHarbor的用户授权... 查看详情