dockerfile镜像原理

在讲解镜像原理之前首先了解以下知识:

       Linux文件系统由bootfs和rootfs两部分组成  

       bootfs:包含bootloader(引导加载程序)和 kernel(内核)

       rootfs: root文件系统,包含的就是典型 Linux 系统中的/dev,/proc,/bin,/etc等标准目录和文件 不同的linux发行版,bootfs           基本一样,而rootfs不同,如ubuntu,centos等。

 Docker镜像原理

  • Docker镜像是由特殊的文件系统叠加而成
  • 最底端是bootfs,并使用宿主机的bootfs
  •  第二层是root文件系统rootfs,称为base image
  • 然后再网上可以叠加其他的镜像文件
  • 统一文件系统技术能够将不同的层整合成一个文件系统,为这些层提供一个统一的视角,这样就隐藏了多层的存在,在用户的角度看来,只存在一个文件系统
  • 一个镜像可以放在另一个镜像的上面,位于下面的镜像称为父镜像,最底部的镜像称为基础镜像。
  • 当从一个镜像启动容器时,docker会在最顶层加载一个读写文件系统作为容器

 思考

1. docker镜像的本质是什么?

     分层文件系统

2. docker中一个centos镜像为什么只有200MB,而一个centos操作系统的iso文件要几个G?

    centos的镜像文件包含bootfs和rootfs,而docker的centos镜像服用操作系统的bootfs,只有rootfs和其他镜像层

3. docker 中一个Tomcat镜像为什么有500MB,而一个Tomcat安装包只有70多MB?

    由于docker中镜像是分层的,Tomcat虽然只有70多MB,但也需要依赖父镜像和基础镜像,所以整个对外暴露的Tomcat镜像大      小有500多MB。

镜像制作

1. 容器转为镜像(挂载的目录不会加载进去)

# 将容器转成镜像
docker commit 容器id 镜像名称:版本号(版本号不写默认为latest)
# 将镜像打包成压缩文件
docker save -o 压缩文件名称 镜像名称:版本号
# 将压缩文件还原为镜像
docker load -i 压缩文件名称

 

2. dockerfile

    dockerfile是一个文本文件,包含了一条条的指令,每一条指令构建一层,基于基础镜像,最终构建出一个新的镜像;

    对于开发人员来说,它可以为开发人员提供一个完全一致的开发环境;

    对于测试人员来说,可以直接拿开发时所构建的镜像或通过dockerfile文件构建一个新的镜像开始工作;

    对于运维人员来说,在部署时,可以实现应用的无缝移植。

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值