6. Docker 本地镜像发布到私有库

server/2025/2/14 2:27:07/

6. Docker 本地镜像发布到私有库

文章目录

  • 6. Docker 本地镜像发布到私有库
  • 1. 将本地镜像推送到私有库详细步骤:
  • 2. 最后:


本地镜像发布到私有库流程图:

在这里插入图片描述

Docker Registry 是什么:

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

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

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

1. 将本地镜像推送到私有库详细步骤:

在这里插入图片描述

  1. pull 下载/拉取 镜像Docker Registry(私有镜像仓库):
[root@localhost ~]# docker pull registry

在这里插入图片描述

  1. 运行私有库Registry,相当于本地有个私有Docker hub:
docker run -d -p 5000:5000  -v /rainbowsea/myregistry/:/tmp/registry --privileged=true registry

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

[root@localhost ~]# docker run -d -p 5000:5000 -v /rianbowsea/myregistry/:/tmp/registry --privileged=true registry

在这里插入图片描述

[root@localhost ~]# docker ps

一般我们 docker run 了一个容器实例,就执行一下 docker ps 查看,容器实例是否运行起来了。

在这里插入图片描述

  1. 案例演示创建一个新镜像,ubuntu安装 ifconfig 命令:

从Hub上下载 ubuntu 镜像到本地并成功运行

[root@localhost ~]# docker run -it b1d9df8ab815 /bin/bash

在这里插入图片描述

原始(容器实例)的Ubuntu镜像是不带着 ifconfig 命令的
在这里插入图片描述

外网连通的情况下,为原始(容器实例)的 ubuntu 安装ifconfig命令并测试通过

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

root@34638f93b3be:/# apt-get update
root@34638f93b3be:/# apt-get install net-tools

在这里插入图片描述

在这里插入图片描述

root@34638f93b3be:/# ifconfig

在这里插入图片描述

安装完成后,使用 commit 创建我们自己的新镜像

公式: docker commit -m=“提交的描述信息” -a=“作者” 容器ID 要创建的目标镜像名:[标签名]
命令: 注意是 在容器外执行 docker commit -m “ifconfig cmd add” -a=“RainbowSea” 34638f93b3be rsubuntu:1.2

[root@localhost ~]# docker commit -m "ifconfig cmd add" -a="RainbowSea" 34638f93b3be rsubuntu:1.2

在这里插入图片描述

在这里插入图片描述

启动我们的新镜像并和原来的对比

[root@localhost ~]# docker run -it 753af6142e72  /bin/bash

在这里插入图片描述

官网是默认下载的Ubuntu没有ifconfig命令
我们自己commit构建的新镜像,新增加了ifconfig功能,可以成功使用。

在这里插入图片描述

  1. curl 验证私服库上有什么镜像
[root@localhost ~]#  curl -XGET http://192.168.76.147:5000/v2/_catalog

在这里插入图片描述

  1. 将新镜像 rsubuntu:1.2修改符合私服规范的Tag

在这里插入图片描述

按照公式: docker tag 镜像:Tag Host:Port/Repository:Tag

注意:自己 host 主机IP地址,填写你们自己的,不要粘贴错误,O(∩_∩)O

使用命令 docker tag 将 rsubuntu:1.2 这个镜像修改为 192.168.76.147:5000/rsubuntu:1.2

docker tag rsubuntu:1.2 192.168.76.147:5000/rsubuntu:1.2

在这里插入图片描述

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

在这里插入图片描述

[root@localhost ~]# cat /etc/docker/daemon.json

vim命令新增如下红色内容:vim /etc/docker/daemon.json

"insecure-registries": ["192.168.76.147:5000"]
{"registry-mirrors": ["https://t566dnbq.mirror.aliyuncs.com","https://3bx1o6se.mirror.aliyuncs.com","https://dockerhub.icu","https://docker.chenby.cn","https://docker.1panel.live","https://docker.awsl9527.cn","https://docker.anyhub.us.kg","https://dhub.kubesre.xyz","https://docker.mirrors.ustc.edu.cn"],"insecure-registries": ["192.168.76.147:5000"]
}

在这里插入图片描述

上述理由:docker 默认不允许http方式推送镜像,通过配置选项来取消这个限制。====> 修改完后如果不生效,建议重启docker

[root@localhost ~]# systemctl restart docker

在这里插入图片描述

重启之后,再次执行该命令:启动 私服

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

在这里插入图片描述

  1. push 推送到私服库:
docker push 192.168.76.147:5000/rsubuntu:1.2

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

  1. curl 验证私服库上有什么镜像2
[root@localhost ~]# curl -XGET http://192.168.76.147:5000/v2/_catalog

在这里插入图片描述

  1. 将私服当中的 rsubuntu,pull 到本地并运行
[root@localhost ~]# docker rmi -f 192.168.76.147:5000/rsubuntu:1.2 # 注意要带上 :1.2版本,不然,无法删除

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

[root@localhost ~]# docker rmi -f rsubuntu:1.2

在这里插入图片描述

[root@localhost ~]# docker pull 192.168.76.147:5000/rsubuntu:1.2 # 注意要带上版本号

在这里插入图片描述

[root@localhost ~]# docker run -it 192.168.76.147:5000/rsubuntu:1.2

在这里插入图片描述

2. 最后:

“在这个最后的篇章中,我要表达我对每一位读者的感激之情。你们的关注和回复是我创作的动力源泉,我从你们身上吸取了无尽的灵感与勇气。我会将你们的鼓励留在心底,继续在其他的领域奋斗。感谢你们,我们总会在某个时刻再次相遇。”

在这里插入图片描述


http://www.ppmy.cn/server/167494.html

相关文章

Kotlin 2.1.0 入门教程(十六)属性、getter、setter、幕后字段、后备属性、编译时常量、延迟初始化

属性声明 属性可以使用 var 关键字声明为可变的,也可以使用 val 关键字声明为只读的。 class Address {var name: String "Holmes, Sherlock"var street: String "Baker"var city: String "London"var state: String? nullvar…

Ubuntu 下 nginx-1.24.0 源码分析 - NGX_HAVE_GETTIMEZONE 宏

表示当前平台支持通过 gettimezone() 直接获取时区偏移值(以分钟为单位) 该宏用于适配不同操作系统对时区信息获取方式的差异。 当 NGX_HAVE_GETTIMEZONE 被定义时,Nginx 会调用 ngx_gettimezone() 获取时区偏移 在 Ubuntu 环境下&#xff0c…

【Web安全测试】Burp中NEW_xp_CAPTCHA插件(含4.1和4.2)的下载安装和导入

NEW-xp-CAPTCHA插件的下载 首先需准备好以下文件: NEW-xp-CAPTCHA 4.2地址 https://gitcode.com/open-source-toolkit/42f798/?utm_sourcetools_gitcode&indexbottom&typecard NEW-xp-CAPTCHA 4.1地址 NEW-xp-CAPTCHA 4.1python环境下载地址 NEW-xp-…

大数据Orc文件生成与读取

ORC(Optimized Row Columnar)是Hadoop生态系统中一种高效的列式存储文件格式,其主要特性包括高效压缩、快速读取、以及能够存储结构化数据。本文将展示如何使用Java编写代码来生成和读取ORC文件。 一、ORC文件介绍 ORC是一种为Hadoop生态系统优化的列式存储格式,具有以下…

【在线优化】【有源程序】基于遗传算法(GA)和粒子群优化(PSO)算法的MPPT控制策略

目录 一、背景 二、源程序及结果 2.1 simulink仿真程序 2.2 GA模块源程序 2.3 PSO模块源程序 三、程序运行结果 3.1 基于GA优化的MPPT 3.2 基于PSO优化的MPPT 一、背景 MPPT策略能够显著提高光伏、风电等发电效率,节省大量成本。该策略的经典算法是&#xf…

visual studio 2008的试用版评估期已结束的解决办法

visual studio 2008试用期过了后,再次启动时提示:visual studio的试用版评估期已结束。 需要的工具:补丁文件PatchVS2008.exe 解决办法: 1.在“控制面板”-“添加删除程序”中选择visual studio 2008,点击“更改/卸载”…

头条百度批量采集软件说明文档

旧版说明文档《头条号文章批量采集软件4.0版本说明文档!头条/微头条文章批量采集》 头条的采集软件已经更新了好多个版本了,一直没有做详细的介绍文档,最近更新了一些功能进去,一块来写一下说明文档。 1、主界面 2、头条作者采集…

安全研究员职业提升路径

阶段一:基础能力沉淀期(0-3年) 目标薪资:15-30万/年(国内) 核心技能 掌握渗透测试全流程(Web/App/内网)熟练使用BurpSuite、Metasploit、IDA Pro等工具理解漏洞原理(如O…