Docker搭建本地私有仓库

news2024/11/29 6:35:43

目录

一、本地私有仓库的优点

二、Docker搭建本地私有仓库

2.1、首先下载 registry 镜像

2.2、在 daemon.json 文件中添加私有镜像仓库地址

2.3、运行 registry 容器

2.4、Docker容器的重启策略

2.5、为镜像打标签

2.6、上传到私有仓库

2.7、私有仓库的 centos 镜像有哪些tag

2.8、先删除原有的 centos 的镜像,再测试私有仓库下载

2.9、注意事项


一、本地私有仓库的优点

有时候使用Docker Hub这样的公共仓库可能不方便,这种情况下用户可以使用registry创建一个本地仓库供私人使用,这点跟Maven的管理类似。
使用私有仓库有许多优点:

  • 节省网络带宽,针对于每个镜像不用每个人都去中央仓库上面去下载,只需要从私有仓库中下载即可;
  • 提供镜像资源利用,针对于公司内部使用的镜像,推送到本地的私有仓库中,以供公司内部相关人员使用。

二、Docker搭建本地私有仓库

Docker 官方提供了一个搭建私有仓库的镜像 registry (注册服务器),只需把镜像下载下来,运行容器并暴露5000端口,就可以使用了

目前Docker Registry已经升级到了v2,最新版的Docker已不再支持v1。Registry v2使用Go语言编写,在性能和安全性上做了很多优化,重新设计了镜像的存储格式。如果需要安装registry v2,只需下载registry:2.2即可。Docker官方提供的工具docker-registry可以用于构建私有的镜像仓库

2.1、首先下载 registry 镜像

docker pull registry

2.2、在 daemon.json 文件中添加私有镜像仓库地址


vim /etc/docker/daemon.json
{
  "insecure-registries": ["192.168.226.12:5000"],						
#添加,注意用逗号结尾
  "registry-mirrors": ["https://ae3f5qei.mirror.aliyuncs.com"]
}
cat /etc/docker/daemon.json
systemctl restart docker.service

2.3、运行 registry 容器

docker run -itd -v /data/registry:/var/lib/registry -p 5000:5000 --restart=always --name registry registry:latest

-itd:在容器中打开一个伪终端进行交互操作,并在后台运行

-v:把宿主机的/data/registry目录绑定到容器/var/lib/registry目录(这个目录是registry容器中存放镜像文件的目录),来实现数据的持久化;

-p:映射端口;访问宿主机的5000端口就访问到registry容器的服务了

--restart=always:这是重启的策略,在容器退出时总是重启容器

--name registry:创建容器命名为registry

registry:latest:这个是刚才pull下来的镜像

2.4、Docker容器的重启策略

no:默认策略,在容器退出时不重启容器

on-failure:在容器非正常退出时(退出状态非0),才会重启容器

on-failure:3 :在容器非正常退出时重启容器,最多重启3次

always:在容器退出时总是重启容器

unless-stopped:在容器退出时总是重启容器,但是不考虑在Docker守护进程启动时就已经停止了的容器

2.5、为镜像打标签

docker tag centos:7 192.168.226.12:5000/centos:v1
docker pull centos:7
docker tag centos:7 192.168.226.12:5000/centos:v1
docker images

2.6、上传到私有仓库

docker push 192.168.226.12:5000/centos:v1

2.7、私有仓库的 centos 镜像有哪些tag

curl http://192.168.226.12:5000/v2/centos/tags/list

2.8、先删除原有的 centos 的镜像,再测试私有仓库下载

docker images
docker rmi 192.168.226.12:5000/centos:v1
docker iamges
docker pull 192.168.226.12:5000/centos:v1
docker images

2.9、注意事项

如果不对私有仓库命名的话,默认走的是公共仓库(docker hub),所以需要命名镜像。
私有仓库镜像的命名规则:宿主机ip地址:端口号/xxxx(需要更改的名称)

当你对源镜像进行命名后,命名后的镜像名称也视为一个标签,因为id号是相同的。如果当源镜像删除,命名后的镜像依然会存在,因为删除的是一个标签。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/335442.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Cubox是什么应用?如何将Cubox同步至Notion、语雀、在线文档中

Cubox是什么应用? Cubox 是一款跨平台的网络收藏工具,通过浏览器扩展、客户端、手机应用、微信转发等方式,将网页、文字、图片、语音、视频、文件等内容保存起来,再经过自动整理、标签、分类之后,就可以随时阅读、搜索…

02- pandas 数据库 (数据库)

pandas 数据库重点: pandas 的主要数据结构: Series (一维数据)与 DataFrame (二维数据)。 pd.DataFrame(data np.random.randint(0,151,size (5,3)), # 生成pandas数据 index [Danial,Brandon,softpo,Ella,Cindy], # 行索引 …

windeployqt实现一键打包

每次发布QT程序前,都必须要在命令行环境下运行windeployqt 工具进行打包,加载相关的lib文件,才能正常运行。但是在命令行模式下,每次都要手动输入windeployqt的目录,和应用程序的位置目录,效率非常低,见下图: 那QT有没有什么好用的工具可以避免这个问题呢,认真找了一下…

前端如何实现将多页数据合并导出到Excel单Sheet页解决方案|内附代码

前端与数据展示 前后端分离是当前比较盛行的开发模式,它使项目的分工更加明确,后端负责处理、存储数据;前端负责显示数据.前端和后端开发人员通过接口进行数据的交换。因此前端最重要的能力是需要将数据呈现给用户后,与终端用户进行交互。 在前端拿到数…

【Linux】宝塔面板 SSL 证书安装部署

宝塔面板 SSL 证书安装部署前言证书下载宝塔配置SSL注意事项前言 前期有讲过Tomcat和Nginx分别部署SSL证书,但也有好多小伙伴们私信我说,帮忙出一期宝塔面板部署SSL证书的教程,毕竟宝塔的用户体量也是蛮大的,于是宠粉的博主&…

基于地基激光雷达数据和深度学习的Faster R-CNN的橡胶树个体分割

Paper题目:Individual Rubber T ree Segmentation Based on Ground-Based LiDAR Data and Faster R-CNN of Deep Learning Abstract 中国南方的橡胶树经常受到可能导致树体倾斜的自然干扰的影响。从扫描点云中对单个橡胶树进行准确的树冠分割是准确检索树参数的必…

前端 ES6 之 Promise 实践应用与控制反转

Promise 主要是为解决程序异步处理而生的,在现在的前端应用中无处不在,已然成为前端开发中最重要的技能点之一。它不仅解决了以前回调函数地狱嵌套的痛点,更重要的是它提供了更完整、更强大的异步解决方案。 同时 Promise 也是前端面试中必不…

玩转系统|初遇ChatGPT,我和TA的第一次约会

最近互联网圈子有一个非常火爆的话题ChatGPT,短短一周的时间就有上百万的用户,如果你不是程序员,也许会问这到底是个什么玩意?ChatGPT是什么?ChatGPT,美国“开放人工智能研究中心”研发的聊天机器人程序 [1…

CAPL(vTESTStudio) - DoIP - TCP接收_04

TCP接收 函数介绍 TcpOpen函数

LeetCode刷题系列 -- 59. 螺旋矩阵 II

给你一个正整数 n ,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix 。示例 1:输入:n 3输出:[[1,2,3],[8,9,4],[7,6,5]]示例 2:输入:n 1输出&#xff1…

以后更新功能,再也不用App发版了!智能小程序将为开发者最大化减负

在 IoT 时代,越来越多的企业意识到打造自有 App 对于品牌的重要性。作为智能设备不可或缺的控制终端,App 具备连接用户、完善服务、精细化运营用户的独特优势,可帮助企业大大提升品牌竞争力。 为了帮助品牌企业打造更具个性化、差异化的智能…

MoveIT Rviz和Gazebo联合仿真

文章目录环境安装概述ros_control框架ros_control数据流文件配置附加工具故障问题解决参考接前两篇:ROS MoveIT1(Noetic)安装总结 Solidworks导出为URDF用于MoveIT总结(带prismatic) MoveIT1 Assistant 总结 环境 Ubu…

网络安全协议(3)

作者简介:一名在校云计算网络运维学生、每天分享网络运维的学习经验、和学习笔记。 座右铭:低头赶路,敬事如仪 个人主页:网络豆的主页​​​​​​ 目录 前言 一.当前流行操作系统的安全等级 1.Windows的安全等级 什么是EAL…

不花钱体验最近火出圈的 ChatGPT 是真的

OpenAI 发布的 ChatGPT,一经发布在科技圈就火得不行了! ChatGPT 是什么呢? 它是一款由 OpenAl 开发的语言模型产品,它能够模拟人类的语言行为,与用户进行自然的交互。ChatGPT 基于GPT-3.5(Generative Pre…

linux基本功系列之lsof命令实战

文章目录前言一. lsof命令介绍二. 语法格式及常用选项三. 参考案例3.1 显示系统打开的文件3.2 查找某个文件相关的进程3.3 列出某个用户打开的文件信息3.4 列出某个程序进程所打开的文件信息3.5 查看某个进程号打开的文件3.6 列出所有的网络连接3.7 列出谁在使用某个端口3.8 恢…

OSS(Object Storage Service)进行上传图片,下载图片(详细看文档可以完成操作)

文章目录1.单体前后端项目上传1.上传流程2. BuckName 和EndPoint3. AccessKey 和Access Secret(创建RAM(Resource Access Manage)的子账号,然后可以获得Accesskey和Acess Secret)3.根据创建的子账号分配OSS的所有权限(可以对文件进行上传&…

【年度总结】回望大学四年坎坷的2022

【年度总结】回望大学四年&坎坷的2022 2022年,我毕业了! 满心欢喜的离开,到现在看来,却甚是想念大学的时光。 这一年,绝对是我此生过的最难的一年。考研失利、工作不顺、投资失败、“财政”赤字...... 现在的我…

浅析依赖注入框架的生命周期(以 InversifyJS 为例)

在上一篇介绍了 VSCode 的依赖注入设计,并且实现了一个简单的 IOC 框架。但是距离成为一个生产环境可用的框架还差的很远。 行业内已经有许多非常优秀的开源 IOC 框架,它们划分了更为清晰地模块来应对复杂情况下依赖注入运行的正确性。 这里我将以 Inv…

RiproV2主题首页中间网站动态栏美化教程

优化描述 Riprov2官网首页如下: 中间部分网站动态条过于简单,想优化成本文后续的样子,本教程解决这个问题。 优化后可设置滚动,可显示会员总数,今日发布,本周发布,资源总数等项。 优化后的具体网站:

大白话说ChatGPT

ChatGPT是如何流行的? 在经历了2016年,由AlphGo击败李世石而掀起的AI浪潮后,AI行业沉寂良久,上一波浪潮里起来的AI算法公司,在硬件化和数据的泥沼里寻找出路,这么多年,AI行业太需要一个现象级的…