Docker 搭建私人仓库

news2024/11/14 15:16:36

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.0

docker 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.coloradmin.cn/o/1535272.html

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

相关文章

探究BufferedOutputStream的奥秘

咦咦咦,各位小可爱,我是你们的好伙伴——bug菌,今天又来给大家普及Java IO相关知识点了,别躲起来啊,听我讲干货还不快点赞,赞多了我就有动力讲得更嗨啦!所以呀,养成先点赞后阅读的好…

[音视频学习笔记]六、自制音视频播放器Part1 -新版本ffmpeg,Qt +VS2022,都什么年代了还在写传统播放器?

前言 参考了雷神的自制播放器项目,100行代码实现最简单的基于FFMPEGSDL的视频播放器(SDL1.x) 不过老版本的代码参考意义不大了,我现在准备使用Qt VS2022 FFmpeg59重写这部分代码,具体的代码仓库如下: …

本地化语音识别、视频翻译和配音工具:赋能音频和视频内容处理

随着人工智能技术的飞速发展,语音识别、视频翻译和配音等任务已经变得更加容易和高效。然而,许多现有的工具和服务仍然依赖于互联网连接,这可能会导致延迟、隐私问题和成本问题。为了克服这些限制,我们介绍了一种本地化、离线运行…

RCE漏洞

RCE漏洞概述 远程命令执行/代码注入漏洞,英文全称为Reote Code/CommandExecute,简称RCE漏洞。PHPJava等Web开发语言包含命令执行和代码执行函数,攻击者可以直接向后台服务器远程执行操作系统命今或者运行注入代码,进而获取系统信息、控制后台…

社交媒体的未来:探讨Facebook的发展趋势

引言 在数字化时代,社交媒体已经成为人们日常生活中不可或缺的一部分。作为全球最大的社交媒体平台之一,Facebook一直在不断地追求创新,以满足用户日益增长的需求和适应科技发展的变革。本文将探讨Facebook在未来发展中可能面临的挑战和应对…

10W字解析 SpringBoot技术内幕文档,实战+原理齐飞,spring事务实现原理面试

第3章,Spring Boot构造流程源码分析,Spring Boot的启动非常简单,只需执行一个简单的main方法即可,但在整个main方法中,Spring Boot都做了些什么呢?本章会为大家详细讲解Spring Boot启动过程中所涉及的源代码…

Linux下Docker部署中间件(Mysql、Redis、Nginx等)

我的自备文件 文件传输 内网下直接上传很慢 使用scp命令将另一台服务器上的文件传输过来;在已有文件的服务器往没有文件的服务器传输 scp -r 传输的文件夹/文件 root要传输的地址:放置的地址 scp -r tools root172.xx.x.xxx:/data/ 安装二进制文件、脚本及各中间件…

《深入解析 C#》—— C# 3 部分

文章目录 第三章 C#3:LINQ及相关特性3.1 自动实现属性(*)3.2 隐式类型 var(*)3.3 对象和集合初始化3.3.1 对象初始化器3.3.2 集合初始化器 3.4 匿名类型3.4.1 基本语法和行为3.4.2 编译器生成类型3.4.3 匿名类型的局限…

Hive和Hadoop版本对应关系

通过 Downloads (apache.org) 即可查看

MySQL的基本操作

目录 引言 一、SQL语句简介 (一)SQL通用语法 (二)SQL分类 (三)数据类型 1.数值类型 2.字符串类型 3.日期/时间类型 4.修饰符 二、登录mysql服务 三、SQL语句操作 (一)DD…

vue3 + ts +element-plus + vue-router + scss + axios搭建项目

本地环境: node版本:20.10.0 目录 一、搭建环境 二、创建项目 三、修改页面 四、封装路由vue-router 五、element-plus 六、安装scss 七、封装axios 一、搭建环境 1、安装vue脚手架 npm i -g vue/cli 2、查看脚手架版本 vue -V3、切换路径到需…

Studio One 6 Mac中文版破解版下载(附Mac版注册机)

Studio One 6 Mac版是一款强大的音乐创作与制作软件,其可通过更简单的方式来录制音频及进行MIDI制作,并提供丰富的专业功能。它具备音乐创作、录音混缩、MIDI编辑、音频处理、Loops拼接、视频配乐和母带与专辑制作等功能。软件提供了强大的音频性能&…

在iOS中安装

返回:OpenCV系列文章目录(持续更新中......) 上一篇:使用CUDA 为Tegra构建OpenCV-CSDN博客 下一篇: 警告! 本教程可以包含过时的信息。 所需软件包 CMake 2.8.8 或更高版本Xcode 4.2 或更高版本 从 G…

笔试总结01

1、spring原理 1、spring原理 spring的最大作用ioc/di,将类与类的依赖关系写在配置文件中,程序在运行时根据配置文件动态加载依赖的类,降低的类与类之间的藕合度。它的原理是在applicationContext.xml加入bean标记,在bean标记中通过class属性说明具体类…

旅游小程序的市场与发展趋势

随着科技的发展,移动互联网已经成为我们生活中不可或缺的一部分。在这个时代,小程序已经成为了一种新的趋势,尤其是在旅游行业。那么,旅游小程序有哪些市场,发展趋势又怎么样呢? 一、旅游小程序的市场 1. 用…

AI原生安全 亚信安全首个“人工智能安全实用手册”开放阅览

不断涌现的AI技术新应用和大模型技术革新,让我们感叹从没有像今天这样,离人工智能的未来如此之近。 追逐AI原生?企业组织基于并利用大模型技术探索和开发AI应用的无限可能,迎接生产与业务模式的全面的革新。 我们更应关心AI安全原…

Linux的基本使用

1.Linux的背景 1.1什么Linux Linux是⼀个操作系统.和Windows是"并列"的关系. 1.2Linux系统的优势 1. 开源(意味着免费,便宜) 2. 稳定(Linux可以运⾏很多年,都不会发⽣重⼤问题) 3. 安全(Linux只有管理员或者特定⽤⼾才能访问Linux内核) 4. ⾃由(不会被强加商业产品和…

JVM内存划分

一、运行时数据区域 堆、方法区(元空间)、虚拟机栈、本地方法栈、程序计数器。 Heap(堆): 对象的实例以及数组的内存都是要在堆上进行分配的,堆是线程共享的一块区域,用来存放对象实例,也是垃圾回收&…

用大语言模型控制交通信号灯,有效缓解拥堵!

城市交通拥堵是一个全球性的问题,在众多缓解交通拥堵的策略中,提高路口交通信号控制的效率至关重要。传统的基于规则的交通信号控制(TSC)方法,由于其静态的、基于规则的算法,无法完全适应城市交通不断变化的…

RK3568笔记二十:PP-YOLOE部署测试

若该文为原创文章,转载请注明原文出处。 注:转换测试使用的是Autodl服务器,CUDA11.1版本,py3.8。 一、PP-YOLOE环境安装 创建环境 # 使用 conda 创建一个名为 PaddleYOLO 的环境,并指定 python 版本conda create -n…