✅ 摘要
Docker 构建上线容易,却暗藏安全隐患与体积膨胀问题。本文揭秘如何使用多阶段构建、Alpine 镜像、Trivy 漏洞扫描等热门手段,打造“又小又安全”的镜像,一次搞懂当前最火的容器安全实践!
你可能遇到过这样的场景: ✅ 项目刚开始,构建镜像不到 200MB; ⛔ 几个月后,镜像膨胀至 1GB+,还存在 CVE 高危漏洞!
问题在哪?
ubuntu, debian);Docker 多阶段构建(multi-stage build)是目前最主流的构建优化方式。
# 阶段1:构建阶段,使用Maven镜像编译
FROM maven:3.9.4-eclipse-temurin-17 AS builder
WORKDIR /app
COPY . .
RUN mvn clean package -DskipTests
# 阶段2:运行阶段,使用Alpine精简镜像
FROM eclipse-temurin:17-alpine
WORKDIR /app
COPY --from=builder /app/target/app.jar .
CMD ["java", "-jar", "app.jar"]✅ 好处:
Trivy 是当前最热门的开源容器镜像扫描工具,Star 20K+,集成简单,支持本地 CLI 或 CI/CD 中自动运行。
trivy image myapp:latest输出示例:
Total: 15 (UNKNOWN: 0, LOW: 5, MEDIUM: 7, HIGH: 3, CRITICAL: 0)🔎 建议措施:
在 GitLab CI、GitHub Actions、Jenkins 等 CI 流水线中,可以这样做:
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Build Docker image
run: docker build -t myapp:latest .
- name: Scan image with Trivy
uses: aquasecurity/trivy-action@master
with:
image-ref: 'myapp:latest'📌 效果:
技术点 | 关键价值 |
|---|---|
多阶段构建 | 精简镜像体积、分离构建逻辑 |
Alpine 镜像 | 减少攻击面、优化体积 |
Trivy 扫描 | 自动发现 CVE 漏洞、提升上线安全 |
CI/CD集成 | 实现 DevSecOps,提前预防安全问题 |
Docker 的未来不只是能跑,还要跑得快、跑得安全!
END
本文分享自 DevOps和k8s全栈技术 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!