Docker本地镜像发布到私有库

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.hqwc.cn/news/28685.html

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

相关文章

P22-p26

p22光照渲染,自动曝光,雾 如果屋子里黑,可以在世界大纲搜索light把平行光和天光改变为可移动,屋子里就亮了(如果屋子内还没亮就重新再构件一次光照) 1,虚幻引擎自带光源 定向光源一般模拟太阳…

Ubuntu 更改内核启动顺序

ubuntu服务器系统中用run包安装了某卡的驱动,后来又安装了docker,重启后,驱动失效。 经分析 安装docker时,又把新的linux内核安装上了。驱动是安装在旧内核上。 然会重新安装驱动,失败,确认是因为驱动只支…

Ansible Playbook剧本配置文件

一、执行文件 Playbook配置文件使用YAML语法,具有简 洁明了,结构清晰等特点。Playbook配置文件类似于shell脚本,是一个YAML格式的文件,用于保存针对特定需求的任务列表,前面介绍的ansible命令虽然可以完成各种任务&a…

大语言模型:从应用到产出;百度网盘推出AI的图搜功能

🦉 AI新闻 🚀 百度网盘推出基于AI的高级图搜功能,提供更精确、全面的搜索结果 摘要:百度网盘近日推出了一项名为“高级图搜”的AI功能。通过基于向量的语义搜索,该功能可以理解时间、地点、人物、事件等组合搜索语句…

【基于 GitLab 的 CI/CD 实践】03、GitLab Pipeline 实践(上)

目录 一、GitLab Pipeline 流水线语法有哪些?流水线参数列表 如何检查语法错误?流水线语法检测 二、Pipeline 基础语法 job script before_script after_script stages 未定义 stages ​定义 stages 控制 stage 运行顺序 .pre & .post …

华为产品测评官-开发者之声 - 真实体验感想

华为产品测评官-开发者之声 - 真实体验感想 我先是在6月17日参加了华为在深圳举办的开发者大会,后面看到群里发的"2023华为产品测评官-开发者之声"活动,简单看了一下体验活动,感觉好玩又能学到东西&#xf…

【LLM】Langchain使用[四](评估、代理)

note 评估目的:检验LLM是否达到验收标准;分析改动对于LLM应用性能的影响 思路:利用语言模型和链,辅助评估 代理: 代理能方便地将LLM连接自己的信息来源(数据)、API等PythonREPLTool工具&#x…

20世纪的传奇Delphi,退出历史舞台?突破传统开发,该用新工具了

先来一波回忆杀吧 有人知道Delphi吗? Delphi的历史可以追溯到1995年,当时它由Borland公司推出。 最初的版本被称为Delphi 1,它是一个基于Object Pascal语言的可视化开发环境,用于创建Windows应用程序。 随着时间的推移&#xff…

年CTF—初五

0x00 前言 CTF 加解密合集:CTF 加解密合集 0x01 题目 神秘人送来了半个世纪前的无线电信号,但是只能分别出以下的密文: YDHML_QKA_PDK_HVD_NAHI_OQ_K_GR 据说上面的无线电信号代表的是中文,由红岸基地发往半人马星系 半个世纪过…

Nginx系列之 一 反向代理

目录 Nginx系列之 一 入门_开着拖拉机回家的博客-CSDN博 一、Nginx概述 二、反向代理 2.1 正向代理 2.2 反向代理 三、反向代理实战 3.1测试服务器 3.2 配置文件说明 3.3 反向代理实战案例一 1、目的 2、具体实现 3.4 反向代理实战案例二 1、目的 2、具体实现 入…

Sentinel的线程隔离和熔断降级

上一节整理了Sentinel的限流,限流可以降低微服务的负载,避免因为高并发而故障,进而传递给其他相关服务而引发服务雪崩。以上仅为避免服务故障,而当某个服务真正故障时,如何处理才能防止服务雪崩? ⇒ Sentin…

手写IOC

IOC原理(手写IOC) Spring框架的IOC是基于反射机制实现的。 反射回顾 Java反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法,对于任意一个对象,都能够调用它的任意方法和属性;这种动态获取信息…