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

三.Docker镜像及其私有库

三.Docker镜像及其私有库

  • 1.是什么?
  • 2.镜像理解
  • 3.Docker镜像commit
  • 4.镜像的生成方法
  • 5.将本地镜像推送到阿里云及下载
  • 6.本地镜像发布到私有库

1.是什么?

是一种轻量级、可执行的独立软件包,它包含运行某个软件所需的所有内容,我们把应用程序和配置依赖打包好形成一个可交付的运行环境(包括代码、运行时需要的库、环境变量和配置文件等),这个打包好的运行环境就是image镜像文件。

2.镜像理解

镜像可以通过分层来进行继承,基于基础镜像(没有父镜像),可以制作各种具体的应用镜像。例如从官网下载ubantu镜像(基础镜像),此时这个ubantu基础镜像是没有vim的,那么我们在该基础镜像对应容器中手动下载安装vim后重新构建提交ubantu镜像,新的镜像就相当于在基础镜像上叠加了一层,镜像分层最大的一个好处就是共享资源,方便复制迁移,就是为了复用。

Docker镜像层都是只读的,容器层是可写的,当容器启动时,一个新的可写层被加载到镜像的顶部。这一层通常被称作“容器层”,“容器层”之下的都叫“镜像层”。
在这里插入图片描述

3.Docker镜像commit

docker commit提交容器副本使之成为一个新的镜像:
docker commit -m=“提交的描述信息” -a=“作者” 容器ID 要创建的目标镜像名:[标签名]
例:
docker拉取centos镜像后启动

docker run -it centos:7.9.2009 /bin/bash

原始的默认centos镜像是不带着vim命令的,外网连通的情况下,在centos容器中安装vim:

yum install vim -y

安装完成后,commit我们自己的新镜像:
在这里插入图片描述
在这里插入图片描述

docker commit -m=”新增vim” -a=”liumingyong” 1a742028225a mycentos:1.0

在这里插入图片描述
所以新镜像则是拥有vim功能的centos

总结:Docker中的镜像分层,支持通过扩展现有镜像,创建新的镜像。类似Java继承于一个Base基础类,自己再按需扩展。新镜像是从 base 镜像一层一层叠加生成的。每安装一个软件,就在现有镜像的基础上增加一层

4.镜像的生成方法

1)基于当前容器创建一个新的镜像,新功能增强

docker commit [OPTIONS] 容器ID [REPOSITORY[:TAG]]

OPTIONS说明:
-a :提交的镜像作者;
-m :提交时的说明文字;
REPOSITORY:新容器名
TAG:版本号
例:
在这里插入图片描述
在这里插入图片描述
2)通过DockerFile构建

5.将本地镜像推送到阿里云及下载

1)阿里云开发者平台
https://promotion.aliyun.com/ntms/act/kubernetes.html
在这里插入图片描述
2)创建仓库镜像

  • 选择控制台,进入容器镜像服务
    在这里插入图片描述
    在这里插入图片描述
  • 选择个人实例
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  • 创建命名空间
    在这里插入图片描述
  • 创建镜像仓库
    在这里插入图片描述
    在这里插入图片描述
  • 管理界面脚本
    在这里插入图片描述

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

搭建方式一:使用 Docker Registry 搭建私有仓库
搭建方式二:使用 Harbor 搭建私有仓库 (企业级常用)
Docker Registry是官方提供的工具,可以用于构建私有镜像仓库
1)下载镜像Docker Registry

docker pull registry

2)运行私有库Registry,相当于本地有个私有Docker hub

docker run -d -p 5000:5000  -v /mydocker/myregistry/:/var/lib/registry --privileged=true registry

默认情况,仓库被创建在容器的/var/lib/registry目录下,建议自行用容器卷映射,方便于宿主机联调
命令参数解析
• docker run:创建并运行一个新的容器
• -d:后台运行容器(detached模式)
• -p 5000:5000:端口映射
将宿主机的5000端口映射到容器的5000端口
外部可通过宿主机5000端口访问容器服务
• -v /mydocker/myregistry/:/var/lib/registry:数据卷挂载
将宿主机的/mydocker/myregistry/目录挂载到容器的/var/lib/registry目录
实现数据持久化存储,容器重启后数据不丢失
• --privileged=true:特权模式
给容器赋予扩展权限
容器内的root用户拥有宿主机root权限(谨慎使用)
• registry:要运行的镜像名称
Docker官方的私有镜像仓库镜像
3) 通过curl查看私有镜像仓库有哪些镜像

curl -XGET http://私库IP:端口/v2/_catalog

在这里插入图片描述
4)上传到私服之前,需要给镜像打上正确的标签
重置Tag原因:

  • Docker客户端需要知道将镜像推送到哪个仓库
  • 没有完整路径时,默认推送到Docker Hub (docker.io)
  • 显式指定确保推送到私有仓库
    Tag规范格式:[仓库地址:端口]/[命名空间]/[镜像名]:[标签]
docker tag your-image:tag your-private-registry.com/namespace/your-image:tag

标签通常遵循一定的命名规范,以便于管理和识别
• your-image是你的Docker镜像名称。
• tag是你想要使用的标签(例如latest, 1.0, 2.0等)。
• your-private-registry.com是你的私有仓库地址。
• namespace是你在私服上设置的命名空间(如果有的话)。如果没有,可以省略。
在这里插入图片描述
5) 修改配置文件使支持http上传镜像
命令:vim /etc/docker/daemon.json
新增配置:“insecure-registries”: [“宿主机ip:5000”]
在这里插入图片描述
在这里插入图片描述
docker默认不允许http方式推送镜像,通过配置选项来取消这个限制。====> 修改完后如果不生效,可重启docker
6)push推送到私服库
docker push ip:端口/镜像名:版本号
在这里插入图片描述
7)再次查看私服库镜像
curl -XGET http://ip:端口/v2/_catalog
在这里插入图片描述
在这里插入图片描述
8)pull到本地并运行
docker pull ip:端口/镜像名:版本号
在这里插入图片描述

http://www.dtcms.com/a/562392.html

相关文章:

  • 网站建设国内外研究现状模板长沙百度网站推广优化
  • 开展建设文明网站活动网络营销专业怎么样
  • 云南省网站开发软件WordPress连接微博
  • 网站建设布吉wordpress 亲子主题
  • 邹城网站网站建设企业车辆管理系统平台
  • 网站建设绿茶科技域名注册报备
  • Learning Transferable Visual Models From Natural Language Supervision 学习笔记
  • 开源项目分享:Gitee热榜项目 2025-11-2 日榜
  • 简述网站建设基本流程图php做的网站代码
  • 网络服务商能删除网站珠海网络网站建设
  • PsTools 学习笔记(7.10):PsFile——远程“谁在占用这个文件/共享”的取证与解占用
  • 怎样查找网站域名归属地推是什么意思
  • 做网站需要什么软件教程西安做网站公司8
  • 电商网站平台哪个网站做ppt好
  • 代码笔记:Dark Experience for General Continual Learning a Strong, Simple Baseline
  • 简约网站建设公司郑州网站建设智巢
  • 网站建设张景鹏做广告推广哪家好
  • windows安装oracle19c
  • 辉县市工程建设网站建设做一款微信小程序多少钱
  • Java 学习35:Random 类
  • 如何找外贸网站建设公司医院网站建设模板下载
  • 数据结构---平衡二叉树的实现
  • 网站维护描述wordpress虚拟币插件
  • 哈什么网一个网站做ppt搭建网站的空间哪里买
  • 做网站美工需要会什么软件怎么看一个网站什么程序做的
  • 局域网内部如何做网站中企动力大连公司咋样
  • 网站建设制作做网站优化推广公司net网站建设教程
  • [yolov11改进系列]基于yolov11使用fasternet_t0替换backbone用于轻量化网络的python源码+训练源码
  • 【具身智能】ChatVLA 系列:让 VLA 同时具备「多模态理解对话」与「动作执行」能力
  • 手机网站源码东莞常平房价2023最新楼盘消息