以较小的尺寸导出Docker镜像的最佳/正确方法是什么?

问题描述 投票:-1回答:1

我的任务是使用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上导入应用程序的正确步骤是什么)

非常感谢

docker spring-boot docker-compose dockerfile
1个回答
2
投票

你所做的只是正确的。由于基本映像openjdk:8已经是737MB,因此您的应用程序仅为25 MB。您可以将构建的映像推送到docker-hub,并要求相应的用户从那里拉出来。当您尝试保存图像时,我认为您的用户可能无法从docker-hub获取。

为了最小化泊坞窗图像的大小,您可以使用jre图像(例如openjdk:8-jre-sim只有大约205 MB的大小)。你可以通过建立自己进一步减少jre图像,其中一个教程可以找到here。但是,没有太大的改进,所以我建议你使用官方的jre图像。

© www.soinside.com 2019 - 2024. All rights reserved.