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

涨薪技术|Docker容器技术之镜像(image)

前面的推文我们初步了解了Docker容器的一些知识,今天开始给大家分享更详细的一系列关于Docker容器技术,欢迎关注。Docker不管是程序员,架构师或者测试工程师都必须要掌握的一门主流技术。

01认识docker镜像

Docker镜像是由文件系统叠加而成,最低端是一个引导文件系统,即bootfs,这个很像Linux/Unix的引导文件系统,Docker用户几乎永远不和引导文件系统有交互。Docker看起来很像一个Linux虚拟化栈,Docker镜像的第二层是root文件系统rootfs,它位于引导文件系统之上,rootfs可以是一种或多种操作系统。

在传统的Linux引导过程中,root文件系统会先以只读的方式加载,当引导结束并完成完整性检查后,它才会被切换成读写模式,但是在Docker中,root文件系统永远只能是只读状态,并且Docker利用联合加载(union mount)技术会在root文件系统层上加载更多的只读文件系统,联合加载指的是一次同时加载多个文件系统,但是在外面看起来只能看到一个文件系统。联合加载会将各层文件系统叠加到一起,这样最终的文件系统会包含所有底层的文件和目录。

Docker将这样的文件系统称为镜像,一个镜像可以放到另一个镜像的顶部,位于下面的镜像称之为父镜像(parent image),可以依次类推,直到镜像栈的最底部,最底部的镜像称之为基础镜像(base image)。最后当从一个镜像启支容器时,Docker会在该镜像的最顶层加载一个读写文件系统。

图片

02拉取镜像

镜像是运行容器的前提, 官方的Docker Hub 网站已经提供了数十万个镜像供大家开放下载。

本节主要介绍docker 镜像的pull 子命令;

可以使用docker [image] pull 命令直接从Docker Hub 镜像源来下载镜像。

该命令的格式为:

docker [image] pull NAME [ :TAG]

NAME 是镜像仓库名称(用来区分镜像), TAG 是镜像的标签(往往用来表示版本信息) 。通常情况下, 描述一个镜像需要包括“名称+标签“ 信息。如果在下载镜像时没有标示版本,那么下载下来的将是最新版本,标签为latest。

[root@localhost ~]# docker pull httpdlatest: Pulling from httpd //表示下载最新版的httpd镜像e41adbd1cb5b: Pull complete14d0dfd633f4: Pull complete505c936535a7: Pull complete427c82bd70cd: Pull completeDigest: sha256:3884dc098e89d69066965a2084884f47fed0be76461b5c6c96559b1328298e31Status: Downloaded newer image for httpd:latest

下载过程中可以看出,镜像文件一般由若干层(layer)组成,427c82bd70cd这样的串是层的唯一id(实际上完整的id包括256比特,64个十六进制字符组成)。

可能有人会想

http://www.xdnf.cn/news/979921.html

相关文章:

  • Object.defineProperty()详解
  • React 18 渲染机制优化:解决浏览器卡顿的三种方案
  • AX620Q上模型部署流程
  • Spring Security是如何完成身份认证的?
  • BUG调试案例十四:TL431/TL432电路发热问题案例
  • Python训练营打卡DAY51
  • 机器学习核心概念速览
  • 基于ElasticSearch的法律法规检索系统架构实践
  • livetalking实时数字人多并发
  • uni-app项目实战笔记1--创建项目和实现首页轮播图功能
  • 告别excel:AI 驱动的数据分析指南
  • elementui使用Layout布局-对齐方式
  • input+disabled/readonly问题
  • Vue3 + TypeScript + Element Plus 表格行按钮不触发 row-click 事件、不触发勾选行,只执行按钮的 click 事件
  • Explore Image Deblurring via Encoded Blur Kernel Space论文阅读
  • 时序数据库IoTDB数据模型建模实例详解
  • Jmeter中变量如何使用?
  • MySQL 三表 JOIN 执行机制深度解析
  • 基础数论一一同余定理
  • Qt 动态插件系统QMetaObject::invokeMethod
  • 【docker】docker registry搭建私有镜像仓库
  • 开源 java android app 开发(十二)封库.aar
  • SD-WAN 技术如何助力工业物联网(IIoT)数据传输?深度解析传统方案对比与应用实践
  • Chrome 优质插件计划
  • 智慧农业物联网实训中心建设方案
  • 趋境科技英特尔生态沙龙举办,打通大模型私有化“最后一公里”
  • 当简约美学融入小程序 UI 设计:开启高效交互新篇
  • 【Java学习日记38】:C语言 fabs 与 Java abs 绝对值函数
  • element plus的el-form重置无效
  • CavityPlus: 北大团队研发的综合性蛋白质结合位点检测及功能分析网络服务器