Docker 搭建私人仓库

docker 搭建私人仓库有下面几种方式:

  • 1、docker hub 官方私人镜像仓库
  • 2、本地私有仓库

官方私人镜像仓库搭建很简单(就是需要有魔法,否则就异步到第二种方法吧),只需要 login、pull、tag、push 几种命令就完事了。而本地私人镜像仓库则比较麻烦一点而且只能存储在本地不能公开。

下面我们就来简单的介绍一下怎么搭建自己的私人仓库吧!

官方镜像仓库

首先,我们需要在 docker hub 这里申请注册一个账号并登录,同时也要在 Docker Desktop 中进行登录。完成登录以后,我们首先在命令行中使用命令进行登录

docker login

出现 Login Succeeded 就代表登录成功了!
在这里插入图片描述

注:你的身份验证凭证将被存储在本地目录的 .dockercfg 文件中

接着我们查看一下本地镜像,可以看到这里有一个 nginx,待会儿就拿这个进行测试吧!

docker images

在这里插入图片描述
首先对镜像打上 tag,也就是重命名。

注:重命名格式需要 用户名/镜像名:版本号

docker tag nginx codegetters/nginx:1.0.0

在这里插入图片描述
检查一下看看是否成功打上了 tag
在这里插入图片描述

到了这里我们就完成了大部分的工作了,只需要 push到自己的账号中就好了。

注:push 的镜像名要写全包括最后的版本号,否则就会失败

docker push codegetters/nginx:1.0.0

在这里插入图片描述
完成以后我们就可以删除本地镜像了,不过删除不是我们的重点就不过多展示了。我们接着进入 docker hub 并登录自己的账号。点击 Repositories 就可以看到我们的仓库中已经有了 nginx
在这里插入图片描述
到了这里我们就算完成了,如果想要从自己的仓库中拉下来就执行下面的命令即可

docker pull codegetters/nginx:1.0.0

本地私有仓库

为什么使用私用仓库?
公司的项目一般不予许我们上传到 Docker Hub 这类的公共仓库中,所有学会创建一个私有仓库也是非常必要的。虽然 hub.docker 上可以保存镜像,但是网速相对较慢,在内部环境中搭建一个私有的公共仓库是个更好的方案。

官方提供了 docker hub 来作为一个公开的集中仓库。然而,本地访问 Docker Hub 速度往往很慢,并且很多时候需要一个本地的私有仓库只供网内使用。

registry 就是管理 docker 镜像的服务。接下来的操作也是主要使用 registry 这个镜像进行,

首先我们先拉取 registry 镜像

docker pull registry

在这里插入图片描述
接着让 registry 跑起来并且将镜像的 /var/lib/registry 挂载到我们的本地 E:\software_cache\docker 这个目录中,同时将本地的 5000 端口映射到镜像中。

docker run -d -p 5000:5000 -v E:\software_cache\docker:/var/lib/registry --restart=always registry

在这里插入图片描述
运行成功后可以访问 ip:5000/v2 如果是下图的状态就算运行成功了。

在这里插入图片描述

访问 ip:5000/v2/_catalog 查看镜像仓库情况,这里的空数组表明还没有上传任何镜像
在这里插入图片描述

接下来我们打开 docker desktop 打开设置,将自己的 ip:5000 添加到下面的数组中(没有的话需要自己的添加)以此允许本地推送镜像,如果是 Linux 的话,则需要找到 /etc/docker/daemon.json (没有需要自己创建)

  "insecure-registries": ["http://xxx.xxx.xxx.xxx:5000"],

在这里插入图片描述

完成设置以后,我们就可以安按照上面的操作流程了。先对镜像打上 tag 并检查一下

注:重命名格式需要 用户名/镜像名:版本号

docker tag nginx xxx.xxx.xxx.xxx:5000/nginx:1.0.0docker images

在这里插入图片描述
完成 tag 后就将镜像推送到我们的本地仓库了

注:push 的镜像名要写全包括最后的版本号,否则就会失败

docker push xxx.xxx.xxx.xxx:5000/nginx:1.0.0

在这里插入图片描述

这个时候我们访问刚才的页面,就显示了刚才推送的镜像-nginx
在这里插入图片描述
当然,我们也可以使用命令也可以进行查看是否成功推送

curl http://xxx.xxx.xxx.xxx:5000/v2/_catalog

在这里插入图片描述

也可以使用这个命令来访问本地仓库的 tag 列表

curl http://xxx.xxx.xxx.xxx:5000/v2/_catalog | python -m json.tool

在这里插入图片描述

我们来运行一下 registry 中的镜像看看是否运行能够运行成功。这里我是将本地的 80 端口映射到 nginx 中的 80 端口了

docker run -d -p 80:80 --name nginx xxx.xxx.xxx.xxx:5000/nginx:1.0.0

在这里插入图片描述

我们访问一下本地 ip:80 出现了 nginx 页面就表明搭建成功了!
在这里插入图片描述

使用 Harbor 管理仓库

什么是 Harbor

harbor 是一个由 vm 公司开源的企业级容器镜像仓库,有以下功能:
管理用户界面
基于角色的访问控制
LDAP/AD 集成及日志审计等基本运维操作

Harbor的三种安装方式(这里我就选择 离线安装了):

  • 在线安装:从Docker Hub下载Harbor相关镜像,因此安装软件包非常小
  • 离线安装:安装包包含部署的相关镜像,因此安装包比较大
  • OVA安装程序(第三方):当用户具有vCenter环境时,使用此安装程序,在部署 OVA后启动Harbor

前置准备:下载 Harbor online 安装包 中的 harbor-offline-installer-vx.x.x.tgz到本地进行解压缩,然后将 harbor.yml.tmpl 文件复制并重命名为 harbor.yml,接着使用文本编辑器打开并修改 hostname 为本地 ip 地址。如果说你不使用 https 进行访问(一般都是内网使用),那就将相关的配置都给注释掉。

在这里插入图片描述
然后打开命令行进入这个目录中,使用 docker 加载本地镜像

docker load -i harbor.v2.10.1.tar.gz

在这里插入图片描述
加载完成后我们检查一下已经成功加载了 Harbor 本地镜像了
在这里插入图片描述
使用 ./prepare 预处理一些文件,初始化文件

执行 install.sh 就正式开始安装了

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

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

相关文章

sentinel整合gateway实现服务限流

导入依赖: <dependencies><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-gateway</artifactId></dependency><dependency><groupId>com.alibaba.csp</groupId><…

【Python脚本随手笔记】 ---基于鸿蒙系统LiteOS实现差分编译脚本(下篇)

💌 所属专栏:【Python脚本随手笔记】 😀 作  者:我是夜阑的狗🐶 🚀 个人简介:一个正在努力学技术的CV工程师,专注基础和实战分享 ,欢迎咨询! 💖 欢迎大家:这里是CSDN,我总结知识的地方,喜欢的话请三连,有问题请私信 😘 😘 😘 文章目录 前言一、&…

mac下Appuim环境安装-持续更新中

参考资料 Mac安装Appium_mac电脑安装appium-CSDN博客 安卓测试工具&#xff1a;Appium 环境安装&#xff08;mac版本&#xff09;_安卓自动化测试mac环境搭建-CSDN博客 1. 基本环境依赖 1 node.js 2 JDK&#xff08;Java JDK&#xff09; 3 Android SDK 4 Appium&#x…

如何优化前端项目的 SEO

在当今数字化时代&#xff0c;网站对于企业的重要性不言而喻。然而&#xff0c;一个优秀的网站如果在搜索引擎中排名靠后&#xff0c;将无法吸引到足够的流量和用户。因此&#xff0c;优化前端项目的SEO已经成为了网站拓展业务、提升品牌知名度的必经之路。 响应式设计与移动优…

ByteMD - 掘金社区 MarkDown 编辑器的免费开源的版本,可以在 Vue / React / Svelte 中使用

各位元宵节快乐&#xff0c;今天推荐一款字节跳动旗下掘金社区官方出品的 Markdown 编辑器 JS 开发库。 ByteMD 是一个用于 web 开发的 Markdown 编辑器 JavaScript 库&#xff0c;是字节跳动&#xff08;也就是掘金社区&#xff09;出品的 Markdown 格式的富文本编辑器&#…

利用Python进行数据清洗与预处理:Pandas的高级用法【第147篇—Pandas的高级用法】

&#x1f47d;发现宝藏 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。【点击进入巨牛的人工智能学习网站】。 利用Python进行数据清洗与预处理&#xff1a;Pandas的高级用法 在数据科学和机器学习领域&…

AI绘画自动生成器:让艺术创作触手可及

随着人工智能技术的飞速发展&#xff0c;越来越多的应用领域逐渐与AI技术融合。在艺术领域&#xff0c;AI绘画自动生成器成为了一款备受关注的产品。它利用深度学习算法&#xff0c;让用户通过输入关键词或描述性文本&#xff0c;就能在几秒钟内生成一幅独特的艺术作品。在这篇…

选择器加练习

一、常用的选择器 1.元素选择器 语法 : 标签名{} 作用 : 选中对应标签中的内容 例:p{} , div{} , span{} , ol{} , ul{} ...... 2.类选择器(class选择器) 语法 : .class属性值{} 作用 : 选中对应class属性值的元素 注意:class里面的属性值不能以数字开头,如果以符号开头,…

Java中最简单的添加日志链路的方式之一

Java项目中添加日志链路功能的设计与实现 文章目录 Java项目中添加日志链路功能的设计与实现前言一、日志链路的概念与作用二、添加日志链路的设计思路三、如何支持多线程下的日志打印也附加上日志链路id1. 示例1&#xff1a;实现Runnable接口&#xff0c;无返回值2. 示例2&…

适配器模式与桥接模式-灵活应对变化的两种设计策略大比拼

​&#x1f308; 个人主页&#xff1a;danci_ &#x1f525; 系列专栏&#xff1a;《设计模式》 &#x1f4aa;&#x1f3fb; 制定明确可量化的目标&#xff0c;坚持默默的做事。 &#x1f680; 转载自&#xff1a;设计模式深度解析&#xff1a;适配器模式与桥接模式-灵活应对变…

Spark Rebalance hint的倾斜的处理(OptimizeSkewInRebalancePartitions)

背景 本文基于Spark 3.5.0 目前公司在做小文件合并的时候用到了 Spark Rebalance 这个算子&#xff0c;这个算子的主要作用是在AQE阶段的最后写文件的阶段进行小文件的合并&#xff0c;使得最后落盘的文件不会太大也不会太小&#xff0c;从而达到小文件合并的作用&#xff0c;…

sentinel熔断规则详解

1、慢调用降级熔断 1.1、参数详解 最大RT&#xff1a;调用接口的最大时间。 比例阈值&#xff1a;超过了最大RT调用时间的请求的比例。 熔断时长&#xff1a;触发熔断后&#xff0c;熔断的时间 最小请求数据&#xff1a;每秒最少的请求数量&#xff0c;只有大于等于这个数…

SQLiteC/C++接口详细介绍sqlite3_stmt类(九)

返回&#xff1a;SQLite—系列文章目录 上一篇&#xff1a;SQLiteC/C接口详细介绍sqlite3_stmt类&#xff08;六&#xff09; 下一篇&#xff1a; 无 33、sqlite3_column_table_name 函数 sqlite3_column_table_name 用于返回结果集中指定列所属的表的名称。如果查询中列使…

前端案例:产品模块

文章目录 产品模块效果结构布局分析父级盒子布局图片和段落评价和详情 产品模块效果 结构布局分析 1、大的父级盒子包含全部的内容 2、内容装入 图片&#xff08;img标签&#xff09;&#xff1b;分别三个子盒子装入两段评价以及商品信息。 父级盒子布局 div {width: 300px…

网络通信——IP地址、端口号、协议(TCP、UDP)

通信架构 网络通信三要素 IP地址 IPv4地址 IPv6地址 IP域名 IP常识 端口号 概念 协议 开放式网络互联标准&#xff1a;OSI、TCP/IP 传输层的2个通信协议——UDP、TCP TCP协议&#xff1a;三次握手建立建立可靠连接 进行三次握手的原因&#xff1a;为了确保客户端和服务端…

实时数仓之实时数仓架构(Doris)

目前比较流行的实时数仓架构有两类,其中一类是以Flink+Doris为核心的实时数仓架构方案;另一类是以湖仓一体架构为核心的实时数仓架构方案。本文针对Flink+Doris架构进行介绍,这套架构的特点是组件涉及相对较少,架构简单,实时性更高,且易于Lambda架构实现,Doris本身可以支…

R语言Meta分析核心技术:回归诊断与模型验证

R语言作为一种强大的统计分析和绘图语言&#xff0c;在科研领域发挥着日益重要的作用。其中&#xff0c;Meta分析作为一种整合多个独立研究结果的统计方法&#xff0c;在R语言中得到了广泛的应用。通过R语言进行Meta分析&#xff0c;研究者能够更为准确、全面地评估某一研究问题…

安卓studio连接手机之后,一两秒之后就自动断开了。问题解决。

太坑了&#xff0c;安卓studio链接手机之后。几秒之后就断开了。我以为是adb的问题&#xff0c;就重新安装了一下adb。并且在环境变量中配置了Path的路径。然而并没有什么用啊。 后来查看是wps的服务和ADB有冲突。直接把WPS卸载掉之后就没有出现链接手机闪现的的问题。

基于python+vue研究生志愿填报辅助系统flask-django-php-nodejs

二十一世纪我们的社会进入了信息时代&#xff0c;信息管理系统的建立&#xff0c;大大提高了人们信息化水平。传统的管理方式对时间、地点的限制太多&#xff0c;而在线管理系统刚好能满足这些需求&#xff0c;在线管理系统突破了传统管理方式的局限性。于是本文针对这一需求设…

阿里云国际该如何设置DDoS高防防护策略?

DDoS高防提供针对网络四层DDoS攻击的防护策略设置功能&#xff0c;例如虚假源和空连接检测、源限速、目的限速&#xff0c;适用于优化调整非网站业务的DDoS防护策略。在DDoS高防实例下添加端口转发规则&#xff0c;接入非网站业务后&#xff0c;您可以单独设置某个端口的DDoS防…