当前位置: 首页 > news >正文

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

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. 最后:

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

在这里插入图片描述

相关文章:

  • RK3588 Linux平台部署DeepSeek模型教程
  • 20250212:sigmastar系列2-获取UUID进行授权
  • 自动驾驶---如何打造一款属于自己的自动驾驶系统
  • 【开源免费】基于Vue和SpringBoot的旅游管理系统(附论文)
  • 亚冬会绽放“云端”,联通云如何点亮冰城“科技之光”?
  • XML 命名空间
  • Python 面向对象的三大特征
  • 给压缩文件加密码的5种方法(win/mac/手机/网页端)
  • 渲染相机设置 pyrender cameralib
  • Spring Cloud + Nacos + K8S 零影响发布方案
  • LeetCode每日精进:链表的回文结构
  • vue框架生命周期详细解析
  • 【含开题报告+文档+PPT+源码】基于spring boot的固定资产管理系统
  • UIView 与 CALayer 的联系和区别
  • Java每日精进·45天挑战·Day18
  • AI Agent未来走向何方?
  • 如何在割接过程中确保服务不中断?
  • 在Spring Cloud项目中集成MySQL、MyBatis-Plus与HikariCP
  • 【设计模式】【行为型模式】命令模式(Command)
  • Docker 安装与配置 Nginx
  • 从“长绳系日”特展看韩天衡求艺之路
  • 荣盛发展股东所持1.17亿股将被司法拍卖,起拍价约1.788亿元
  • 中信银行一季度净利195.09亿增1.66%,不良率持平
  • A股三大股指小幅低收:电力股大幅调整,两市成交10221亿元
  • 企业取消“大小周”引热议,半月谈:不能将显性加班变为隐性加班
  • 从腰缠万贯到债台高筑、官司缠身:尼泊尔保皇新星即将陨落?