实际图像的大小是多少?

时间:2019-12-24 19:04:40

标签: docker

我有以下图像:

REPOSITORY                TAG                 IMAGE ID            CREATED             SIZE
softshipper/foo-service   latest              f3bcb2966414        5 seconds ago       295MB
openjdk                   11.0.5-jre          499aaf14790b        4 weeks ago         267MB

softshipper/foo-service的实际大小是28MB(295-267)还是295MB?

docker文件如下所示:

FROM openjdk:11.0.5-jre as stage0
LABEL snp-multi-stage="intermediate"
LABEL snp-multi-stage-id="7dad9ef8-0561-42df-950d-e186b93ff4b0"
WORKDIR /opt/docker
COPY opt /opt
USER root
RUN ["chmod", "-R", "u=rX,g=rX", "/opt/docker"]
RUN ["chmod", "u+x,g+x", "/opt/docker/bin/foo-service"]

FROM openjdk:11.0.5-jre
USER root
RUN id -u demiourgos728 1>/dev/null 2>&1 || (( getent group 0 1>/dev/null 2>&1 || ( type groupadd 1>/dev/null 2>&1 && groupadd -g 0 root || addgroup -g 0 -S root )) && ( type useradd 1>/dev/null 2>&1 && useradd --system --create-home --uid 1001 --gid 0 demiourgos728 || adduser -S -u 1001 -G root demiourgos728 ))
WORKDIR /opt/docker
COPY --from=stage0 --chown=demiourgos728:root /opt/docker /opt/docker
USER 1001:0
ENTRYPOINT ["/opt/docker/bin/foo-service"]
CMD []

1 个答案:

答案 0 :(得分:5)

softshipper/foo-service的实际大小为295MB。但是,softshipper/foo-service是基于openjdk的,这意味着softshipper/foo-service使用了openjdk的某些层。

因此,softshipper/foo-service的实际大小为295MB,而openjdk的实际大小为267MB。但是,softshipper/foo-service + openjdk的实际大小小于295 + 267MB,因为两个图像使用了相同的图层。

请注意,无法通过简单的正负来知道softshipper/foo-service + openjdk的实际大小。大小取决于它们都使用相同的图层。

相关问题