Docker - 镜像

Docker - 镜像

镜像是什么

镜像是一种轻量级,可执行的独立软件包,用来打包软件运行环境和基于运行环境开发的软件,它包含运行某个软件所需的所有内容,包括代码,运行时,库,环境变量和配置文件。

所有应用,直接打包docker镜像,就可以直接跑起来!

Docker镜像加载原理

UnionFS(联合文件系统)

我们下载的时候看到的一层层就是这个!

UnionsFS(联合文件系统):Union文件系统(UniosFS)是一种分层,轻量级并且高性能的文件系统,它支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同的目录挂载到同个虚拟文件系统下(unite several directories into a single virtual filesystem) Union 文件系统是Docker镜像的基础。镜像可以通过分层来进行继承,基于基础镜像(没有父镜像),可以制作各种具体的应用镜像

特性:一次同时加载多个文件系统,但从外面看起来,只能看到一个文件系统,联合加载会把各层文件系统叠加起来,这样最终的文件系统会包含所有底层的文件和目录。

Docker镜像加载原理

docker镜像实际上由一层一层文件系统组成,这种层级的文件系统UnionFS

bootfs(boot file system)主要包含bootloader和kernel,bootloader主要是引导加载kernel,linux刚启动时会加载bootfs文件系统,在Docker系统的最底层是bootfs。这一层与我们典型的linux/unix系统是一样的,包含boot加载器和内核,当boot加载完成之后整个内核就都在内存中了,此时内存的使用权已由bootfs转交给内核,此时系统也会卸载bootfs

rootfs(root file system),在bootfs之上。包含的就是典型linux系统中 /dev, /proc, /bin, /etc 等标准目录和文件。rootfs就是各种不同的操作系统发行版,比如Ubuntu,Centos等等。

在这里插入图片描述

对于一个精简的OS,rootfs可以很小,只需要包含最基本的命令,工具和程序库就可以了,因为底层直接用host的kernel,自己只需要提供rootfs就可以了。因此可见对于不同的linux发行版,bootfs基本是一致的,rootfs会有差别,因此不同的发行版可以公用bootfts

虚拟机是分钟级别,容器是秒级!

分层理解

分层的镜像

在这里插入图片描述

commit镜像

docker commit 提交容器成为一个新的副本

# 命令与git原理类似
docker commit -m="提交的描述信息" -a="作者" 容器id 目标镜像名:[TAG]

实战测试
# 1、启动一个默认的tomcat
# 2、发现这个默认的tomcat是没有webapps应用,官网的镜像默认webapps下面是没有文件的!
# 3、我们拷贝进去了基本的文件
# 4、将我们操作过的容器通过commit提交为一个镜像!我们以后就使用我们修改过的镜像即可,这就是我们自己的一个修改的镜像

[root@iZ2zeg7mctvft5renx1qvbZ ~]# docker ps
CONTAINER ID   IMAGE     COMMAND             CREATED         STATUS         PORTS                                       NAMES
448d12d702d2   tomcat    "catalina.sh run"   2 minutes ago   Up 2 minutes   0.0.0.0:8080->8080/tcp, :::8080->8080/tcp   busy_turing
[root@iZ2zeg7mctvft5renx1qvbZ ~]# docker exec -it 448d12d702d2 /bin/bash
root@448d12d702d2:/usr/local/tomcat# ls
bin  BUILDING.txt  conf  CONTRIBUTING.md  lib  LICENSE  logs  native-jni-lib  NOTICE  README.md  RELEASE-NOTES  RUNNING.txt  temp  webapps  webapps.dist  work
root@448d12d702d2:/usr/local/tomcat# cp -r webapps.dist/* webapps/
root@448d12d702d2:/usr/local/tomcat# cd webapps
root@448d12d702d2:/usr/local/tomcat/webapps# ls
docs  examples  host-manager  manager  ROOT
root@448d12d702d2:/usr/local/tomcat/webapps# 
root@448d12d702d2:/usr/local/tomcat/webapps# exit
exit

# 提交新的镜像
[root@iZ2zeg7mctvft5renx1qvbZ ~]# docker commit -m="调整webapps" -a="wys" 448d12d702d2 tomcat:1.0
sha256:07e43a4b5b9a1892b4a425aa5b25d31cd3366f7450b939dd62f3f5ca0349d4eb

# 启动新的镜像
[root@iZ2zeg7mctvft5renx1qvbZ ~]# docker run -it -d -p 8080:8080 tomcat:1.0
[root@iZ2zeg7mctvft5renx1qvbZ ~]# docker ps
CONTAINER ID   IMAGE        COMMAND             CREATED          STATUS          PORTS                                       NAMES
b1ee55bd7376   tomcat:1.0   "catalina.sh run"   44 seconds ago   Up 43 seconds   0.0.0.0:8080->8080/tcp, :::8080->8080/tcp   compassionate_bouman

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/122765.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

电脑风扇控制软件 Macs Fan Control Pro mac中文版功能介绍

Macs Fan Control mac是一款专门为 Mac 用户设计的软件,它可以帮助用户控制和监控 Mac 设备的风扇速度和温度。这款软件允许用户手动调整风扇速度,以提高设备的散热效果,减少过热造成的风险。 Macs Fan Control 可以在菜单栏上显示当前系统温…

如何在Python爬虫中使用IP代理以避免反爬虫机制

目录 前言 一、IP代理的使用 1. 什么是IP代理? 2. 如何获取IP代理? 3. 如何使用IP代理? 4. 如何避免IP代理失效? 5. 代理IP的匿名性 二、代码示例 总结 前言 在进行爬虫时,我们很容易会遇到反爬虫机制。网站…

聊一聊被人嘲笑的if err!=nil和golang为什么要必须支持多返回值?

golang多返回值演示 我们知道,多返回值是golang的一个特性,比如下面这段代码,里面的参数名我起了几个比较好区分的 package mainfunc main() {Swap(10999, 10888) }func Swap(saaa, sbbb int) (int, int) {return sbbb, saaa }golang为什么要支持多返回…

IP代理识别API:预防欺诈和保护网络安全的必要工具

引言 随着互联网的快速发展,我们的生活变得越来越依赖于网络。然而,随着网络的发展,网络犯罪和网络欺诈也在不断增加。为了保护自己的网站和客户免受网络欺诈的侵害,许多企业和组织开始使用IP代理识别API作为一种必要工具。 什么…

jenkins结合k8s部署动态slave

1、完成k8s连接 在完成jenkins的部署后现安装kubernets的插件 如果jenkins 是部署在k8s集群中只需要填写一下 如果是非本集群的部署则需要填写证书等 cat ./config echo ‘certificate-authority-data-value’ | base64 -d > ./ca.crt echo ‘client-certificate-data’ |…

第二次pta认证P测试C++

#include <iostream> using namespace std; int f(int n){if (n0){return 1;}if (n1){return 3;}return 4*f(n-1)-f(n-2); } int n; int main() {cin>>n;cout<<f(n);return 0; }第二题 试题编号&#xff1a;2022-13-0302 试题名称&#xff1a;长正整数相加 …

springcloud小说阅读网站源码

开发工具&#xff1a; 大等于jdk1.8&#xff0c;大于mysql5.5&#xff0c;nodejs&#xff0c;idea&#xff08;eclipse&#xff09;&#xff0c;vscode&#xff08;webstorm&#xff09; 技术说明&#xff1a; springcloud springboot mybatis vue elementui 功能介绍&…

2023年9月少儿编程 中国电子学会图形化编程等级考试Scratch编程二级真题解析(判断题)

2023年9月scratch编程等级考试二级真题 判断题(共10题,每题2分,共20分) 26、下列两个程序运行效果一样 答案:对 考点分析:考查积木综合使用,重点考查重复执行和坐标积木 两个程序都是在x=0,y=100的时候停止,所以正确 27、甲、乙和丙,一位是山东人,一位是河南人,…

2023云栖大会,Salesforce终敲开中国CRM市场

2015年被视为中国CRM SaaS元年&#xff0c;众多CRM SaaS创业公司和厂商在Salesforce的榜样作用下涌入了CRM SaaS赛道。在全球市场&#xff0c;Salesforce是CRM SaaS领域的领导厂商&#xff0c;连续多年占据了全球CRM SaaS第一大厂商地位。然而&#xff0c;Salesforce作为业务类…

【送书福利-第二十六期】机械工业出版社《算法秘籍》~

&#x1f60e; 作者介绍&#xff1a;我是程序员洲洲&#xff0c;一个热爱写作的非著名程序员。CSDN全栈优质领域创作者、华为云博客社区云享专家、阿里云博客社区专家博主、前后端开发、人工智能研究生。公粽号&#xff1a;程序员洲洲。 &#x1f388; 本文专栏&#xff1a;本文…

面试算法常考题之-------逆波兰式合集

逆波兰式背景介绍 逆波兰式是一种特殊的数学表达式表示法&#xff0c;它的诞生背景可以追溯到20世纪30年代。当时&#xff0c;波兰数学家Jan Wjtowicz和Wacław Sierpiński提出了一种新的数学表达式表示法&#xff0c;这种表示法将运算符放在操作数之后&#xff0c;而不是传统…

Kibana使用Timelion根据时间序列展示数据

天行健&#xff0c;君子以自强不息&#xff1b;地势坤&#xff0c;君子以厚德载物。 每个人都有惰性&#xff0c;但不断学习是好好生活的根本&#xff0c;共勉&#xff01; 文章均为学习整理笔记&#xff0c;分享记录为主&#xff0c;如有错误请指正&#xff0c;共同学习进步。…

CloudCompare 技巧五 CSF 体积计算等

43、CSF 原始点云 我这路要的是地面分离出来&#xff0c;所以我选的是Flat 结果如下&#xff1a; 44、点云超欠挖体积计算 结果&#xff1a; 45、 网格表面积体积测量 46、法向量 47、CANUPO点云分类 持续更新

ros1 实现Server端自定义四 Topic模式控制海龟运动

一、服务模型 Server端本身是进行模拟海龟运动的命令端&#xff0c;它的实现是通过给海龟发送速度&#xff08;Twist&#xff09;的指令&#xff0c;来控制海龟运动&#xff08;本身通过Topic实现&#xff09;。 Client端相当于海龟运动的开关&#xff0c;其发布Request来控制…

1.77亿美元,安世被迫出售晶圆大厂NWF | 百能云芯

11月9日消息&#xff0c;安世半导体&#xff08;Nexperia&#xff09;与纽交所上市公司威世&#xff08;Vishay&#xff09;签署协议&#xff0c;作价1.77亿美元出售英国Newport Wafer Fab&#xff08;以下简称NWF&#xff09;的母公司NEPTUNE 6 LIMITED&#xff08;以下简称“…

LabVIEW调用库函数节点无法显示DLL中的函数

LabVIEW调用库函数节点无法显示DLL中的函数 正在使用调用库函数节点来调用一个DLL文件。可是&#xff0c;当浏览该DLL时&#xff0c;却无法在Function Name下拉菜单中选择任何函数。为什么所有的DLL函数都无法选中呢&#xff1f; 解答: 调用的DLL可能是通过.NET封装的&#x…

国标28181-2022/GB28181-2022国标检测

最近两周带了几个人一起开发国标28181-2022的平台检测&#xff0c; 由于没有28181-2022设备&#xff0c;目前一所还没有一家平台检测过&#xff0c;所以压力比较大&#xff0c;不过还好把28181-2022平台全项检测顺利过了&#xff0c;还帮忙测出了检测中心NVR的几个bug。看了下这…

【好书推荐】计算机考研精炼1000题——考研408不可或缺

《计算机考研精炼1000题》简介 本书根据最新《全国硕士研究生招生考试计算机学科专业基础考试大纲》编写。参考过去十多年的真题&#xff0c;本书精心编排了单项选择题和综合应用题&#xff0c;共约1000道&#xff08;分为上下两册&#xff0c;共24章。上册&#xff08;1&#…

Mall4cloud 微服务商城系统 2.0 发布

导读现在 jdk17 和 spring boot 以及 spring cloud alibaba 2022 的第三方依赖已经趋于成熟&#xff0c;所以 mall4cloud 也一把梭哈做了升级嗷。 本次更新重点&#xff1a; 系统由 jdk8 最低要求升级到 jdk17spring boot 由 2.7.x 升级到 3.1.xjavax 升级到 jakartaspring-cl…