Docker镜像大小是否影响启动速度的试验

本文通过实验探讨了Docker镜像大小对容器启动速度的影响。在独立测试环境中,使用相同输出时间戳的代码,对比了大、小size镜像的启动情况。尽管小size镜像容器并不总是能后发先至,但在服务器压力大的情况下,其启动优势可能更为明显。此外,文章还提醒在Dockerfile中避免不必要的大文件权限变更,以减少镜像大小。
摘要由CSDN通过智能技术生成

Docker镜像的大小,我们知道影响传输、分发和启动,但具体而微,对启动的影响有大呢?

那么,首先是建立评判的标准。如果缺少必要的前提条件,也很难讲结论的正确性...

# 前置条件

+ 独立测试环境,缺少其他并发干扰

+ 运行相同输出时间戳的代码,例如,printloop.sh

+ 大size镜像的容器先启动,小size镜像的容器后启动

# 评判标准

- 如果后启动小size镜像的容器在多次试验中,能够后发先至,说明小size镜像的容器启动具有明显的优势

# 测试脚本


# printloop.sh

trap "exit 0" TERM

logfile="$(hostname)".txt
cat /dev/null > $logfile

while true
do 
 echo "$(hostname) print $(date +'%Y-%m-%d %H-%M-%S-%N')" >> $logfile
 sleep 1
done



##########################################################

# test.sh

set -e 

sudo docker run  --rm -d --name "abc"  -h "centos"  -v $PWD:/workspace -v /etc/localtime:/etc/localtime:ro -w /workspace centos:centos7.6.1810 /bin/sh printloop.sh &


sudo docker run  --rm -d --name "abc1" -h "ubuntu"  -v $PWD:/workspace -v /etc/localtime:/etc/localtime:ro -w /workspace ubuntu:20.04 /bin/sh printloop.sh &

echo "wait job exit......."

wait

echo "finish ......."

# 试验结论

+ 小size镜像容器启动,并不能经常后发先至。Docker对启动几百M镜像的容器速度还是非常快的!

# 未来工作

+ 评判标准可能不够准确和精确,以资交流、讨论:)

# 预测

+ 在服务器压力比较大的时间,小size镜像容器优势还是可能会显现出来

# 参考

+ 官网dockerfile最佳实践

+ ‘’‘find . -size +1M’‘’  shell命令可用于在容器中寻找比较大的文件

# 已知故障

- 在Dockerfile中通过RUN命令对大的目录,无差别地变更执行权限,非常不可取!

例如  ‘’‘RUN chmod -R +x .’‘’ 导致镜像size暴增一倍

更应该通过在docker build image 上下文环境中或版本库中加入文件的执行权限,进行减小镜像大小

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值