dockerfile 方式创建太麻烦了。
docker commit 方式创建的镜像太大了。
大家都是怎么用的。我的镜像减肥后也上 G。
docker commit 方式创建的镜像太大了。
大家都是怎么用的。我的镜像减肥后也上 G。
|
1
😂黑盒镜像也就你自己用用,无所谓大小啦,想减肥只能 Dockerfile 并注意镜像层数,每层最后都需要清理无用文件
|
|
linoderJul 25, 2017
2
自建 repository
|
|
4
alpine linux 镜像或许可以拯救你
|
|
5
1. multistage build,最后只包括二进制
2. 压缩命令压缩镜像 3. 基础镜像用 alpine,golang 可以用 scratch |
|
ThoxviJul 25, 2017 via Android
6
咦…还好吧?底层镜像会复用的,只是看起来大
|
|
9
|
|
10
|
|
13
alpine +1
不过目前过 G 的只见过 Hadoop |
|
14
新版不是支持多阶段构建了吗
|
|
15
docker 不是虚拟机 反正我自己来说是偏好写 dockerfile 比较容易分发。别人拿去也容易改。另外一个就是基础镜像尽可能选 alpine 这样的 你看 apk add 和 apt/yum install 用起来也差不多,但是基础镜像小得多。
话说 docker 部署环境真的好方便 |
|
16
alpine 最蛋疼的地方是太精简了 连 tzdata 都没,想要用 TZ env 设时区,就得自己先封装个,感觉还不如用 debian...
|
|
17
而且 alpine 还没 glibc,又得自己编译
|
|
18
docker commit 不是说一般不会用吗?
|
|
20
底包影响没有想象的那么大,commit 跟 docker file 的差别才是关键问题
|
|
21
|
|
23
必然是分层才能解决啊
|
|
24
1. 用 alpine 2. 开发 Dockerfile 时分别 RUN 每条命令,目的是分层减少重新 build 的时间,开发好了合并 RUN 为一条,减少分层。
|
|
25
另外,清除依赖包、缓存不可少
|
|
26
去看 Dockerfile 最佳实践,一篇文章,到处都有这篇文章的翻译。
|
|
timothyyeAug 3, 2017 via Android
28
用 alpine 小一些,另外,镜像大小跟开发语言也有关,不用运行时的语言,镜像就小很多,比如 go
|