首页 > 解决方案 > 为什么 dockerhub 不在不同的存储库之间共享基础镜像?

问题描述

我对码头工人很陌生。以下是我的码头文件。

FROM openjdk:latest
ADD DockerSpringbootTest.jar DockerSpringbootTest.jar
CMD java -jar DockerSpringbootTest.jar

我使用以下命令构建 docker 映像

docker build -t arshad/myrepo:latest .

然后我通过以下命令将其推送到 dockerhub

docker push arshad/myrepo:latest

注意:我的 docker repo 是arshad/myrepo

我的问题是 openjdk 的大小:最新图像是 467Mb,我的 jar 文件是 20Mb。总共创建的新图像约为 486Mb。

但是当我将图像推送到 dockerhub 时,它上传的是 486Mb 而不是 20Mb(这意味着它也在上传 openjdk 基础图像)。

为什么会这样?我听说有一种叫做“Cross Repository Blob Mount”的东西,意思是“docker不是通过网络传输层,而是在存储库之间共享层”

就我而言,为什么要再次上传基础图像?
如何预防?
(如何仅上传我的自定义图层并从其官方图像共享基础图像)

谢谢!!!

标签: dockerdockerfiledockerhubdocker-push

解决方案


推荐阅读