Docker容器化部署最容易踩的 15 个坑:最后一个让所有镜像白跑

配置前必做三件事

  1. 备份当前镜像:docker save -o backup.tar <image>
  2. 清理无用镜像:docker system prune -a 释放空间
  3. 确认内核版本:uname -r,Docker 要求内核 ≥ 3.10

坑 1:忽略镜像分层导致的层缓存失效

问题现象

修改某一行代码后,整个镜像重新构建,耗时从 30 秒变成 10 分钟。

原因分析

Docker 使用层缓存机制,任何一层变化都会导致后续层全部重建。

正确做法

# ❌ 错误:COPY 会把所有文件都复制进去,破坏缓存
COPY . /app
RUN npm install

# ✅ 正确:先复制 package.json,利用缓存
COPY package*.json ./
RUN npm install
COPY . /app

坑 2:在容器内运行非 PID 1 进程导致信号无法接收

问题现象

docker stop 后容器需要 30 秒才退出,有时直接 SIGKILL。

原因分析

非 PID 1 进程不会收到 SIGTERM,只会等超时后被强杀。

正确做法

# 使用 exec 格式,确保进程成为 PID 1
ENTRYPOINT ["node", 

🔒 付费文档

支付 5 积分后即可解锁全部内容