docker构建镜像时总会有部分文件没有被更新,解决办法

在构建镜像的时候总会遇到明明更新了里面的某些库文件,但是打包镜像以后发现镜像里面的库文件还是没有被更新,依然使用的旧文件。

试过了很多办法,比如 在构建镜像的时候使用 --no-cache

bash 复制代码
docker build --no-cache . -t 192.168.11.111:11211/comm:3.2

然而并没有效果,新打包的镜像还是存在部分旧文件,最后无奈把Dokerfile文件换了一种写法,解决问题,当然在此之前试过使用笨办法也能解决;

解决办法:

原本我的 Dockerfile

bash 复制代码
FROM 192.168.10.110:1199/std-base:4.0

ADD bin /home/huu/app/bin
ADD appdata /home/huu/app/appdata
ADD lib/* /home/huu/app/lib/
ADD lib/plugin/* /home/huu/app/lib/plugin/
ENV PROJECTHOME="/home/huu/app"
RUN chmod 755 $PROJECTHOME/bin/start-app.sh
RUN chmod 755 $PROJECTHOME/bin/appinstance
CMD ["/home/huu/app/bin/start-app.sh"]

重新修改后的 Dockerfile

bash 复制代码
FROM 192.168.10.110:1199/std-base:4.0

ADD bin /home/huu/app/bin
ADD appdata /home/huu/app/appdata
ADD lib/ /home/huu/app/lib/
#ADD lib/plugin/* /home/huu/app/lib/plugin/
ENV PROJECTHOME="/home/huu/app"
RUN chmod 755 $PROJECTHOME/bin/start-app.sh
RUN chmod 755 $PROJECTHOME/bin/appinstance
CMD ["/home/huu/app/bin/start-app.sh"]

主要区别就是 lib目录,使用了 lib/ 直接添加了整个目录,包括整个目录的文件和文件夹

而原来的是为了添加 plugin目录,又把文件重新加了一遍。经过这样修改以后,之前总是没有更新的几个库文件这次都更新了;

笨办法:

使用原本的Dockerfile文件构建一次镜像,例如:

bash 复制代码
docker  build .  -t  192.168.10.110:1199/app:2.0

然后运行

bash 复制代码
docker run -it <镜像ID>   /bin/bash

最后将需要更新的文件,复制到这个容器中

bash 复制代码
docker cp libodbc.so 123456789abc:/app/lib

将容器打包成一个新的镜像:

bash 复制代码
docker commit <容器id>  192.168.10.110:1199/app:2.1

然后检查新打包的镜像

bash 复制代码
docker images

笨办法适用于临时使用,最好还是使用Dockerfile构建镜像

相关推荐
liu****5 小时前
2.深入浅出理解虚拟化与容器化(含Docker实操全解析)
运维·c++·docker·容器·虚拟化技术
池央5 小时前
CANN 诊断工具链深度解析:oam-tools 的自动化故障信息收集、软硬件状态快照与 AI Core 错误溯源机制
运维·人工智能·自动化
云边有个稻草人6 小时前
打工人摸鱼新姿势!轻量斗地主服务器,内网穿透让同事远程联机不翻车
运维·服务器·cpolar
乾元6 小时前
终端安全(EDR):用深度学习识别未知勒索软件
运维·人工智能·网络协议·安全·网络安全·自动化·安全架构
logocode_li6 小时前
OCI/CRI 双标准下:从 dockerd 到 containerd 的 K8s 运行时迭代史
docker·云原生·容器·k8s
wbs_scy6 小时前
Linux 进阶指令实操指南:文件查看、时间管理、搜索压缩全场景覆盖(附高频案例)
linux·运维·服务器
安科瑞刘鸿鹏176 小时前
高速路灯故障难定位?用 ASL600 实现精确单灯监测与维护预警
运维·网络·物联网·安全
馨谙6 小时前
Ansible 事实(Facts)全面指南:自动化运维中的主机信息管理
运维·ansible
Lethehong6 小时前
实测可用|一文搞定OpenClaw部署,免费kimi-k2.5+飞书远程,新手也能秒上手
linux·运维·服务器·玩转openclaw·云端创意实践
馨谙6 小时前
Ansible处理程序完全指南:实现智能的任务触发机制
运维·ansible