Dockerfile 删除不需要的包后镜像容量反而增大了

2017-03-14 20:16:09 +08:00
 fuxkcsdn

Dockerfile 大致如下
build 后镜像容量为 417 MB
把最后一个 RUN 命令去掉, build 后镜像反而只有 415 MB...

查看 build 日志,可以看到执行 apt-get autoremove 的时候有显示

0 upgraded, 0 newly installed, 41 to remove and 2 not upgraded.
After this operation, 178 MB disk space will be freed.
(Reading database ... 17493 files and directories currently installed.)

为啥把包删除后反而镜像还更大了??

FROM: debian:jessie

RUN apt-get update && apt-get install -y python-pip libpython-dev gcc

RUN pip install psutil

RUN apt-get remove --purge -y libpython-dev gcc \
    && apt-get autoremove -y \
    && apt-get clean \
    && rm -rf /var/lib/apt/lists/*
5400 次点击
所在节点    Docker
5 条回复
ooxxcc
2017-03-14 20:18:33 +08:00
你把几个 run 写成一行,用 && 连接
kappa
2017-03-14 20:19:55 +08:00
RUN 命令合并到一起
fuxkcsdn
2017-03-14 20:49:07 +08:00
原本想说把命令分开写层次比较分明
1/3 安装编译环境
2/3 编译安装
3/3 删除编译环境

没想到这样镜像容量竟然增大那么多...
把所有命令合在一起后,编译后镜像容量 229MB... 差了快一倍...
oott123
2017-03-14 20:54:00 +08:00
docker 设计如此,你 RUN 一下就是一层,你要删东西,就要加一层来记录你删的东西
Antidictator
2017-03-17 09:37:55 +08:00
@ooxxcc
@kappa
@oott123

涨知识了。我去试试:)

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/347466

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX