docker导出容器,新增的jar文件导出后为0KB

docker导出容器,新增的jar文件导出后为0KB

问题描述:

用docker导出容器,我在容器里 /home/app/ 目录下上传了一份34M的kafkaTest.jar文件,
图片说明
导出以后发现/home/app/ 目录下kafkaTest.jar文件大小为0 KB
图片说明
拷贝到其他服务器在容器运行时提示
docker run -i -t --name kafkaTest2 java:8ulll java -jar /home/app/kafkaTest.jar
Error: Invalid or corrupt jarfile /home/app/kafkaTest.jar

怎么解决这个问题呢?

自己写一个Dockerfile,把jar包传上去,build成新的镜像,然后再启动。看一下jar是否正常运行了,有可能是你上传的有问题。

From java

维护者信息

MAINTAINER xxx "xxx@xx.com"

工作路径

WORKDIR /home/app/

拷贝jar包到容器指定路径

ADD /xxx/xxx/kafkaTest.jar kafkaTest.jar

暴露的端口号

EXPOSE 8080

启动jar包

ENTRYPOINT ["java", "-jar", "my.jar"]

app文件夹是内部的文件夹还是外部mount的? 如果是mount的是没用的

老哥,针对你的问题有两个要点:
1. 从截图中看,你的容器已经退出了,它的文件系统可能已经释放了。建议,在容器未退出前export导出, 或者commit成新镜像,然后save导出。
2. 但是对于你的情况,完全没啥必要强行把.jar打包到镜像,直接使用时mount到/home/app目录下就OK了。
docker -v $host_path:$container_path用于mount主机文件