构建的java镜像为什么很大!


pull一个ubuntu:14.04的images:

ubuntu:14.04的大小:
geek@prod:~$ docker images | grep ubuntu
ubuntu 14.04 89d5d8e8bafb 3 days ago 187.9 MB

jre解压后的大小:
geek@prod:bigdata_jre0$ du -h --max-depth=1 ./*
4.0K ./Dockerfile
452K ./jre1.8.0_66/bin
20K ./jre1.8.0_66/plugin
186M ./jre1.8.0_66/lib
708K ./jre1.8.0_66/man
187M ./jre1.8.0_66
69M ./jre-8u66-linux-x64.tar.gz
4.0K ./sources.list


不到200M,然后只在里面安装一个jre8u66后,新生成的镜像居然有450M,就算把jre解压后也才180M,ubuntu的大小加上jre的大小180M+180M不到400M,为什么最后的镜像有450+M,不是很理解啊.

下面是我的dockerfile

FROM ubuntu:14.04
COPY jre-8u66-linux-x64.tar.gz /usr/
RUN cd /usr && \
tar xvf /usr/jre-8u66-linux-x64.tar.gz && \
rm jre-8u66-linux-x64.tar.gz && \
rm -rf /var/cache/*
ENV JRE_HOME=/usr/jre JAVA_HOME=/usr/jre
ENV PATH=$JAVA_HOME/bin:$PATH
已邀请:

tuxknight

赞同来自: adolphlwq


COPY 这一层 的大小也要算进去的。
RUN 里的 rm只是在RUN那一层删除了一些文件,但那些文件在其它层仍然是存在的。

可以把COPY换成ADD指令,ADD可以解压缩包,可以从网络路径下载文件等等

oilbeater - 北大学渣@灵雀云

赞同来自:


基础镜像换成 debian 也可以会减小大概 60M

要回复问题请先登录注册