我的任务是使用Spring Boot + mongo嵌入模式创建简单的Java应用程序,然后将其保存并部署在Docker上。因此,其他人将拍摄此快照并在其本地环境中运行。但我有点混淆输出容器或图像的确切内容......
我的步骤: 1.创建Dockerfile
FROM openjdk:8
ADD target/docker-spring-boot-0.0.1-SNAPSHOT.jar docker-spring-boot-0.0.1-SNAPSHOT.jar
EXPOSE 8080
ENTRYPOINT ["java","-jar","docker-spring-boot-0.0.1-SNAPSHOT.jar"]
2。
Create image
docker build -f Dockerfile -t docker-test .
3
vitalys-MBP:docker-spring-boot$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
docker-test latest 644e2f818027 15 minutes ago 762MB
openjdk 8 7c57090325cc 2 weeks ago 737MB
//save on the image
docker save docker-test > docker_test_image.tar
//export on the container
docker export docker_container > docker_container.tar
我的问题是:
我看到每个.tar文件他们差不多760MB我真的不能发送1.5GB,也许我不需要导出容器或我在这里遗漏了什么? (在使用java运行的其他docker上导入应用程序的正确步骤是什么)
非常感谢
答案 0 :(得分:2)
您所做的只是正确的。由于基本映像openjdk:8
已经是737MB,因此您的应用程序仅为25 MB。您可以将构建的映像推送到docker-hub,并要求相应的用户从那里拉出来。当您尝试保存图像时,我认为您的用户可能无法从docker-hub获取。
为了最小化泊坞窗图像的大小,您可以改为使用jre图像(例如openjdk:8-jre-sim只有大约205 MB的大小)。您可以通过构建自己的图像来进一步减少jre图像,可以找到其中一个教程here。但是,没有太大的改进,所以我建议你使用正式的jre图像。