Docker本地镜像发布到私有库

news2025/2/24 9:15:53

Docker Registry(Docker镜像仓库)

使用Docker Registry,可以创建私有或公共的镜像仓库,以存储Docker镜像。私有仓库可以用于存储公司内部的镜像,或者用于个人项目的镜像。公共仓库则会将发布的镜像分享到全世界。

1 官方Docker Hub地址:https://hub.docker.com/,中国大陆访问太慢了且有被阿里云取代的趋势,不太主流。

2 Dockerhub、阿里云这样的公共镜像仓库可能不太方便,涉及机密的公司不可能提供镜像给公网,所以需要创建一个本地私人仓库供给团队使用,基于公司内部项目构建镜像。

Docker Registry是官方提供的工具,可以用于构建私有镜像仓库

将本地镜像推送到私有库

image-20230714213833078

1.下载Docker Registry

docker pull registry

image-20230714213905121

2.运行私有库Registry

相当于本地有个私有Docker hub

docker run -d -p 5000:5000 -v /dongguo/myregistry/:/tmp/registry --privileged=true registry

默认情况,仓库被创建在容器的/var/lib/registry目录下,建议自行用容器卷映射,方便于宿主机联调

这里指定了映射到/tmp/registry

5000:5000 主机端口映射:容器端口映射

image-20230714213959364

Docker挂载主机目录访问如果出现cannot open directory .: Permission denied

解决办法:在挂载目录后多加一个–privileged=true参数即可

如果是CentOS7安全模块会比之前系统版本加强,不安全的会先禁止,所以目录挂载的情况被默认为不安全的行为,

所以在SELinux里面挂载目录被禁止掉了,如果要开启,我们一般使用–privileged=true命令,扩大容器的权限解决挂载目录没有权限的问题,也即使用该参数,container内的root才会拥有真正的root权限,否则,container内的root只是外部的一个普通用户权限。

3.创建一个新镜像,

原始的Ubuntu镜像是不带着ifconfig命令的

image-20230714214018534

安装ifconfig命令并测试通过

docker容器内执行上述两条命令:

apt-get update

apt-get install net-tools

image-20230714214036510

安装完成后,commit我们自己的新镜像

docker commit -m=“提交的描述信息” -a=“作者” 容器ID 要创建的目标镜像名:[标签名]

命令:在容器外执行,记得

docker commit -m=“ifconfig cmd add” -a=“dongguo” 2d505785580d dongguoubuntu:1.0.2

image-20230714214108209

启动我们的新镜像

image-20230714214117462

1 官网是默认下载的Ubuntu没有ifconfig命令

2我们自己commit构建的新镜像,新增加了ifconfig功能,可以成功使用。

4.curl验私服库上有什么镜像

curl -XGET http://192.168.122.139:5000/v2/_catalog

192.168.122.139为对应linux主机的ip

可以看到,目前私服库没有任何镜像发布

image-20230714214151816

5.将新镜像dongguoubuntu:1.0.2修改符合私服规范的Tag

按照公式:

docker tag 镜像:Tag Host:Port/Repository:Tag

使用命令 docker tag 将dongguoubuntu:1.0.2 这个镜像修改为192.168.122.139:5000/dongguoubuntu:1.0.2

docker tag dongguoubuntu:1.0.2 192.168.122.139:5000/dongguoubuntu:1.0.2

image-20230714214232894

6.修改配置文件使之支持http

docker默认不允许http方式推送镜像,通过配置选项来取消这个限制

修改完后如果不生效,建议重启docker

1编辑daemon.json

vim /etc/docker/daemon.json

{
  "registry-mirrors": ["https://vpmkvcwz.mirror.aliyuncs.com"],
  "insecure-registries": ["192.168.122.139:5000"]
}

image-20230714214326303

2.查看daemon.json

cat /etc/docker/daemon.json

image-20230714214342369

3.重启docker

systemctl restart docker

4.重新启动私服仓库

docker run -d -p 5000:5000 -v /dongguo/myregistry/:/tmp/registry --privileged=true registry

image-20230714214409878

7.push推送到私服库

docker push 192.168.122.139:5000/dongguoubuntu:1.0.2

image-20230714214428752

8.curl再次验证私服库上的镜像

curl -XGET http://192.168.122.139:5000/v2/_catalog

此时,私服库中已经存在我们推送的镜像

image-20230714214450510

将私服库上的镜像下载到本地

1删除本地镜像 dongguoubuntu

docker rmi -f b29ae4619ffb

image-20230714214515711

2.将私服库上的镜像下载到本地

docker pull 192.168.122.139:5000/dongguoubuntu:1.0.2

image-20230714214540609

3.启动下载到本地的镜像

docker run -it b29ae4619ffb /bin/bash

image-20230714214559478

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

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

相关文章

【C++】string模拟实现

个人主页🍖:在肯德基吃麻辣烫 文章目录 前言一、string的成员变量二、string默认成员函数1.构造函数1.1 无参构造(默认构造)1.2 普通构造1.3无参构造和全缺省构造可以合并 浅拷贝和深拷贝2.拷贝构造3.赋值运算符重载4.析构函数 三、[]的下标访问和iterat…

P5 第二章 电阻电路的等效变换

1、电阻的Y形联结和△形联结的等效变换 可以发现电阻的Y形联结和△形联结可以刻画成下图模型: 如果Y形联结和△形联结i1,i2,i3都相等,则可以列公式解出R1,R2,R3之间的大小关系。 电路普遍存在对偶关系,可以将上图的电阻换成电导&#xff0c…

干货 | 一个漏洞利用工具仓库

0x00 Awesome-Exploit 一个漏洞证明/漏洞利用工具仓库 不定期更新 部分漏洞对应POC/EXP详情可参见以下仓库: https://github.com/Threekiii/Awesome-POC https://github.com/Threekiii/Vulhub-Reproduce 0x01 项目导航 ActiveMQ CVE-2015-5254 Apisix CVE-2…

el-upload实现上传文件夹(批量上传文件)

el-upload实现上传文件夹(批量上传文件)&#xff1a;关键代码在于 this.$refs.uploadFolder.$children[0].$refs.input.webkitdirectory true;//让el-upload支持上传文件夹 <template><div class"sg-body"><el-upload ref"uploadFolder" :…

【智能时代的颠覆】AI让物联网不再是物联网

自我介绍⛵ &#x1f4e3;我是秋说&#xff0c;研究人工智能、大数据等前沿技术&#xff0c;传递Java、Python等语言知识。 &#x1f649;主页链接&#xff1a;秋说的博客 &#x1f4c6; 学习专栏推荐&#xff1a;MySQL进阶之路、C刷题集、网络安全攻防姿势总结 欢迎点赞 &…

HTML5 WebSocket介绍与基本使用(解析服务端返回的二进制数据)

WebSocket基本介绍 WebSocket 是 HTML5 开始提供的一种在单个 TCP 连接上进行全双工通讯的协议。 WebSocket 使得客户端和服务器之间的数据交换变得更加简单&#xff0c;允许服务端主动向客户端推送数据。在 WebSocket API 中&#xff0c;浏览器和服务器只需要完成一次握手&a…

数据库系统 - 家庭教育平台设计开发

目录 1.绪论 1.1项目背景 1.2家庭教育平台的发展现状与优势 1.2.1国内外发展现状 1.2.2家庭教育平台的优势 2.需求分析 2.1可行性分析 2.1.1经济可行性 2.1.2 技术可行性 2.1.3操作可行性 2.2系统功能 2.2.1 家庭教育资源 2.2.2 家庭教育指导师 2.2.3家庭教育咨询…

H3C-Cloud Lab实验-静态路由配置实验

实验拓扑图&#xff1a; 接口IP地址规划&#xff1a; 实验需求&#xff1a; 1、理解静态路由的运行原理 2、掌握静态路由的配置 实验步骤&#xff1a; PC1和PC2的IP地址、子网掩码、网关 1、连接所有设备并重命名 2、R1&#xff0c;配置R1的接口IP地址&#xff0c;配置3.0、…

042、TiDB特性_系统表的使用

系统表存储位置 MySQL 存储TiDB 系统表 mysql.user 等 information_schmea提供了一种查看系统元数据的方法 与mysql兼容的表&#xff1a;tables、processlist、columns等自定义的表&#xff1a; cluster_config、cluster_hardware、tiflash_replica等等 metrics_schema: 基于P…

Java的数据结构-Map集合

文章目录 Map概述Map常用方法Map遍历元素的方法1.方法一&#xff1a;keySet()2.方法二&#xff1a;entrySet() Map概述 1、Map和collection没有继承关系2、Map集合以key和value的方式存储数据&#xff1a;键值对key和value都是引用数据类型。key和value都是存储对象的内存地址…

ChatGPT:利用人工智能助推教育创新

当前&#xff0c;世界正需要一个更加开放的、更加个性化的学习空间&#xff0c;学生的个性发展和生存发展应该被关注和尊重&#xff0c;课程应该引导学生掌握有用的东西&#xff0c;学生之间的差距应该被正视&#xff0c;教育成功的标准也要被重新定义。过去&#xff0c;我们总…

如何有效利用chatgpt?

如何有效地使用ChatGPT&#xff1f; 代码、诗歌、歌曲和短篇小说都可以由 ChatGPT 以特定的风格编写。您所需要的只是正确的问题和适当的提示。以下是有关如何有效使用ChatGPT的一些提示和想法&#xff1a; 头脑 风暴获取初稿解决编码问题尝试不同的提示格式查找标题寻求帮助…

Docker安装ElasticSearch/ES

目录 前言准备拉取ElasticSearch镜像安装ElasticSearch拉取elasticsearch-head镜像安装elasticsearch-head参考 前言 TencentOS Server 3.1Docker version 19.03.14, build 5eb3275d40 准备 docker 已安装。 安装 docker 参考&#xff1a;【Centos 8】【Centos 7】安装 docke…

XSS简介

OWASP TOP 10 OWASP(开放式Web应用程序安全项目)的工具&#xff0c;文档&#xff0c;论坛额全球各地分会都是开放的&#xff0c;对所有致力于改进应用程序安全的人士开放&#xff0c;最具权威的就是10项目最严重的Web应用程序安全风险列表 Cross Site Scripting&#xff08;X…

基于mediapipe的人脸关键点检测及嘴唇换色demo

Face-mesh(人脸关键点检测及网格绘制) import mediapipe as mp import numpy as np import cv2mp_face_mesh = mp.solutions.face_mesh face_mesh = mp_face_mesh.FaceMesh(static_image_mode=False, # False处理视频,True处理单张图片max_num_faces=1,refine_landmarks=True,…

LayUI之CRUD(增删改查)

目录 一、前期准备 1.数据表格 2.弹出层 3.用户表数据查询 二、用户管理后台编写 三、前端JS编写 四、效果展示 一、前期准备 1.数据表格 在layui官网找到我们需要的数据表格 根据需求复制修改代码&#xff0c;再找到表单复制一个输入框和按钮&#xff0c;做一个搜索功能…

企业级多租户动态分配和共享资源平台——IBM Spectrum Conductor

IBM Spectrum Conductor有何用途 IBM Spectrum Conductor 是一个企业级多租户平台&#xff0c;用于在常用的共享资源集群上部署和管理 Apache Spark、Anaconda、Dask 和其他应用框架和服务。 它能够支持多个并行的不同版本的应用&#xff0c;同时可在租户和应用之间动态分配和…

JavaWeb项目【SpringBoot】——图书项目4.0【源码】:SpringBoot版本 springboot相关技术 项目应用

目录 项目简介思考 & 改进1.Jsp都是同步请求---->改成异步Ajax【完成】2.前端用Jsp技术落后----->用Vue框架【完成】3.架构问题&#xff1a;配置数据和Java代码耦合【完成】3.SQL语句和Java代码耦合【完成】4.架构问题&#xff1a;servlet只能处理一个请求5.响应方式…

原型分析1

对原型的理解又深了一下。之前没考虑 其实所有的函数 都是 new Function 创建的 。所以 函数是 Function 的实例 。而且 Function 的 原型指向自己 。Object也是函数 所以也是 Function 的实例 它的__proto__ 也指向 Function的原型

JavaFX中MVC例子理解

JavaFX可以让你使用GUI组件创建桌面应用程序。一个GUI应用程序执行三个任务&#xff1a;接受用户的输入&#xff0c;处理输入&#xff0c;并显示输出。而一个GUI应用程序包含两个 类型的代码&#xff1a; 领域代码。处理特定领域的数据和遵循业务规范。交互代码。处理用户输入…