docker学习:3、镜像原理 & docker commit

镜像是什么

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

UnionFS(联合文件系统)

Union文件系统(UnionFS)是一种分层、轻量级并且高性能的文件系统,它是docker镜像的基础。镜像可以通过分层来进行继承,基于基础镜像,可以制作各种具体的应用镜像。

特点:一次同时加载多个文件系统,但从外面看起来,只能看到一个文件系统。

docker镜像加载原理

bootfs(boot file system)主要包含bootloader和kernel,bootloader主要引导加载kernel。docker镜像最底层就是bootfs。

rootfs(root file system),在bootfs之上,包含的就是典型linux系统中的/dev、/proc、/bin等标准目录和文件。

在这里插入图片描述
为什么我们的centos才200M?

因为对于一个精简的OS,只需要包括最基本的命令、工具和程序库就可以了,因为底层直接用host的kernel,自己只需要提供rootfs就行了。

docker commit

docker commit:提交容器副本,使之成为一个新的镜像

docker commit -m "提交的描述信息" -a "作者" 容器id 要创建的目标镜像名:[标签名]

测试步骤

  1. docker run -it -p 8080:8080 --name tomcat tomcat 启动tomcat
  2. 在浏览器输入地址看是否成功
  3. 如果出现404报错,则docker exec -it tomcat进入容器(需要重开一个终端)将webapps文件夹删除,然后将webapps.dist文件夹重命名为webapps。
  4. 故意删除docs文件夹,这时在浏览器点击documentation会出现404报错
  5. 即当前的tomcat运行实例是一个没有文档内容的容器,以它为模板commit一个没有doc的tomcat新镜像atguigu/tomcat02
    docker commit -a="xiaoxin" -m="tomcat without docs" dc40cc56f0e6 atguigu/mytomcat:1.2
  6. 会发现多了一个atguigu/tomcat:1.2的镜像
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值