谈谈对docker的上传方式和kubernetes的拉取策略的一些看法

本文探讨了Docker如何上传并覆盖仓库中的镜像,以及Kubernetes中ImagePullPolicy的三种策略:Always、Never和IfNotPresent。在测试中发现,即使本地镜像与仓库镜像名和tag相同,但内容不同,仍会覆盖仓库镜像。而Kubernetes的ImagePullPolicy默认为IfNotPresent,仅在本地没有镜像时拉取;设置为Always时,即使本地有镜像,也会拉取最新镜像。建议生产环境避免使用:latest标签,以防止不必要的拉取。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

因为工作的缘故,测试了一下docker的上传方式和kubernetes中ImagePullPolicy的拉取策略。
为什么要测这个呢?
因为项目负责人让对两个功能进行测试,这两个功能如果研究清楚确实有很大的用处。
是哪两个功能呢?
第一个功能:本地有个和仓库中不同的镜像,但是镜像名和tag号是相同的,这个本地的镜像是否能覆盖仓库的镜像。
第二个功能:仓库中有个镜像的镜像名和tag号和本地的镜像相同,但是仓库的镜像是别的镜像修改之后上传的,再部署的时候会不会重新去拉取仓库中的这个镜像。
第一个功能经过测试发现,是能够上传并覆盖的。测试方式也不复杂,你只需要将一个本地不是特别的的镜像上传到仓库中,然后在本地删除之前的镜像(删除之前记得将该镜像打包成tar保存起来),并将另外一个大小比较明显的镜像重命名为之前那个镜像的镜像名和tag号。然后测试上传这个镜像到仓库,观察仓库中的镜像大小和IMAGE ID是否发生了变化。你会发现仓库中的镜像的大小和IMAGE ID都发生了变化。然后删除本地重命名后的镜像,记住不要用IMAGE ID去删,否则会连同重命名之前的镜像一起删除了。最后把之前备份的tar包导入进docker重新往仓库上传,会发现仓库中的镜像又还原了。
所以,经过测试当本地镜像和仓库的镜像不是同一个镜像的时候,如果镜像名和tag号都相同,会对仓库中的镜像进行覆盖。
第二个功能经过测试发现,这个是和部署文件的ImagePullPolicy有关系的。
之前其实简单的测试过,但是因为看了kubernetes的一段相关介绍反而搞蒙了。
-----------------------------------------------------------------------------------------

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值