本章你将彻底搞懂:Docker 镜像分层存储的底层原理(UnionFS、Overlay2)。为什么随便一个
node:18镜像就 900MB?如何用多阶段构建、合并 RUN 命令、选用 Alpine 基础镜像等手段,把一个臃肿的 1.2GB 镜像压缩到 120MB。
配套资源:一个“胖镜像”的 Dockerfile 原始版(可直接 build 出 1.2GB 的坏榜样)、优化过程中的每一步docker history对比脚本、.dockerignore模板。
真实踩坑:我曾把一个包含完整 GCC 编译环境的 Python 镜像推送到生产,结果 K8s 节点磁盘爆满,滚动更新全部卡住。那次事故让我学会:镜像不是越胖越安全,而是越瘦越可靠。
1.1 一个让 K8s 节点磁盘爆满的“胖镜像”
2019 年我在一家 SaaS 公司,负责一个机器学习推理服务。当时 Dockerfile 是这样写的(极度真实,甚至有点蠢):
FROM ubuntu:20.04
RUN apt-get update
RUN apt-get install -y python3 python3-pip
RUN apt-get install -y gcc g++ make
RUN apt-get install -y libssl-dev libff
订阅专栏 解锁全文
224



被折叠的 条评论
为什么被折叠?



