本文主要记录了在docker镜像中替换jar包或者其他文件情况下的整体步骤,下述内容将以替换镜像中的jar包为例。
详细步骤:
步骤一 查看指定服务下的镜像列表
使用 docker images |grep <service_name> 命令,查看所需要替换jar包的镜像名称。
例如 docker images |grep quark
步骤二 原镜像备份
使用 docker tag <image_id> <image_id>_bak 命令将原镜像备份,bak后面最好加一个时间戳来标记备份时间,如果有多次备份的话更加方便区分
例如 更换下图中的镜像,并标记备份时间为2023年3月30日
docker tag ce12:5000/transwarp/quark:quark-8.23-ce-final ce12:5000/transwarp/quark:quark-8.23-ce-final-bak-20230330
步骤三 在本机上创建目录,将希望替换的jar包放入文件夹中
目录地址取决于docker里的程序需要替换到哪里
步骤四 在创建的目录中编写Dockerfile,
例如:
FROM ce12:5000/transwarp/quark:quark-8.23-ce-final
RUN rm -f /usr/lib/inceptor/lib/crux-types-impl-idbc.jar \
&& rm -f /usr/lib/inceptor/lib/crux-optimizer-idbc.jar
COPY ./crux-types-impl-idbc.jar /usr/lib/inceptor/lib
COPY ./crux-optimizer-idbc.jar /usr/lib/inceptor/lib
注解:
--- FROM ce12:5000/transwarp/quark:quark-8.23-ce-final (希望修改的镜像名称)
--- 替换的jar包与原始的jar包名字不一定完全一样,比如版本号可能不一样,因此建议使用rm -f命令先删除旧的包
--- COPY ./crux-types-impl-idbc.jar (当前文件夹中希望替换的jar包,也可以将COPY替换为ADD,但是ADD可能会有意外情况)
--- /usr/lib/inceptor/lib (docker目录中希望jar包替换的位置)