大厂必备技之精简镜像制作

大厂必备技精简镜像制作

介绍

大家都会用的东西,如何体现出来你的高逼格。或者面试如何高薪通过呢?(谷哥度娘都是很low的人才干的,官网API则是加工后的,大神基本都是喜欢一手资料)
不妨跟随源码中 moby-master/image/spec/v1.2.md
看看是如何描述的。

image-1666329924287


Dockers源码的解释是这样的:
是根文件系统更改和相应执行参数的有序集合,可执行的独立软件包
镜像包含运行某个软件所需的所有内容,包括代码、运行时库、环境变量和配置文件。将所有的应用和环境直接打包到docker镜像里,并且可以直接运行。

要了解 精简docker的优势,我们不妨先看看docker镜像扭转的流程图

image-1666336276272

精简Docker镜像的好处

有了这个基础我们再来分析镜像的好处就显而易见了。
精简Docker镜像的好处很多,不仅可以节省存储空间和带宽,还能减少安全隐患。优化镜像大小的手段多种多样,因服务所使用的基础开发语言不同而有差异。
我这里给大家总结了如下的5点优势。

  1. 减少构建时间
  2. 减少磁盘使用量
  3. 减少下载时间
  4. 因为包含文件少,攻击面减小,提高了安全性
  5. 提高部署速度
    实际上大家可以验证我这几个不同大小镜像 相同功能的镜像对比:
    (文章所限,无法实操,需要详细资料可留言联系)
    docker images | grep ginchat
    docker images | grep ^redis
    并且皆可正常启动与访问
    docker ps -a
    docker start aea (redis-05)
    docker ps
    docker start 68a (ginv2)
    打开页面访问:http://192.168.100.131:8082/

在实操演示超精简镜像的制作之前我们还需要深入了解下

镜像分层的思想

前戏:
前段时间网易蜂巢曾经推出蜂巢镜像,用的正是 Docker 镜像制作,最神奇的是,它最终的镜像大小只有 585 字节。

docker pull hub.c.163.com/public/logo
docker images | grep hub.c.163.com/public/logo
REPOSITORY                      TAG           IMAGE ID         CREATED       SIZE
hub.c.163.com/public/logo       latest        6fbdd13cd204     11 days ago   585 B

有些镜像都不是我们自己来打包的(比如下载公共镜像),那是否有一些通用的精简 Docker 镜像的手段呢?答案是肯定的,甚至有的镜像可以精简 98%。精简镜像大小的好处不言而喻,既节省了存储空间,又能节省带宽,加快传输等。

刚看过的源码后的说明中 提到镜像是由很多layer分层组成的。
镜像层依赖于一系列的底层技术,比如文件系统(filesystems)、写时复制(copy-on-write)、联合挂载(union mounts)等,
docker镜像实际由一层一层的文件系统组成的,这种层次的文件系统为UnionFS

比如通过命令查看镜像分层。
[root@VM-0-6-centos ~]# docker image inspect redis:6
过滤查看layers docker inspect redis:6 | grep -A 30 Layers
可见分层 的layer 及底

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值