Skip to content

💡 实战经验

永远不要用 latest 标签

docker pull nginx 等于 docker pull nginx:latest。今天 latest 是 1.25,下个月可能变成 1.26,你的配置可能就不兼容了。永远写死版本号nginx:1.25-alpine

镜像体积是隐形成本

你可能觉得"服务器磁盘便宜,镜像大点无所谓"。但镜像影响的是部署速度——CI/CD 每次构建都要 pull/push,1GB 的镜像比 50MB 的慢 20 倍。用 alpine 基础镜像,养成多阶段构建的习惯。

Docker 会吃光你的磁盘

默认情况下 Docker 的日志不限大小。一个跑了几个月的容器,日志可能几十 GB。上线第一件事:配置日志轮转。其次定期用 docker system df 查看占用,再按需执行 docker system prune -a 清理未使用资源。不要随手加 --volumes,否则未使用的数据卷也会被删除。

容器不是虚拟机

容器共享宿主机内核,没有独立的文件系统隔离(除了 overlay)。一个容器里的 root 用户就是宿主机的 root。不要因为用了 Docker 就放松安全意识——该限制资源的限制,该用非 root 的用非 root。

Compose 文件不要超过 3 个服务

微服务拆太细、Compose 文件写到 200 行——这是过度工程。大多数项目 2-3 个服务(app + db + cache)就够了。等真的需要拆分时再用 Kubernetes。