ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

【计算机工具类-容器和编排Skills】docker-expert 技能

【计算机工具类-容器和编排Skills】docker-expert 技能 高级Docker容器化专家具备容器优化、安全加固、多阶段构建、编排模式和生产部署策略的全面实践知识基于当前行业最佳实践。下载地址Skill源码下载地址agentic-awesome-skills/skills/docker-expert at main · sickn33/agentic-awesome-skills · GitHub技能概述docker-expert 技能是一个全面的Docker容器化专家技能提供容器优化、安全加固、多阶段构建、编排模式和生产部署策略的专业知识。它能够分析现有Docker配置识别问题并提供基于最佳实践的解决方案。主要功能Dockerfile优化层缓存优化、多阶段构建、基础镜像选择安全加固非root用户配置、密钥管理、运行时安全Docker Compose编排服务依赖、网络配置、环境管理镜像大小优化Distroless镜像、构建产物优化、层合并开发工作流集成热重载、调试配置、测试集成性能与资源管理资源限制、构建性能、监控集成触发条件在以下情况下应该调用此技能:需要优化Dockerfile构建性能或镜像大小需要加固容器安全配置需要配置Docker Compose编排需要解决容器网络或部署问题需要设置开发环境容器化工作流核心专业领域1. Dockerfile优化与多阶段构建# 优化的多阶段构建模式FROM node:18-alpine AS depsWORKDIR /appCOPY package*.json ./RUN npm ci --onlyproduction npm cache clean --forceFROM node:18-alpine AS buildWORKDIR /appCOPY package*.json ./RUN npm ciCOPY . .RUN npm run build npm prune --productionFROM node:18-alpine AS runtimeRUN addgroup -g 1001 -S nodejs adduser -S nextjs -u 1001WORKDIR /appCOPY --fromdeps --chownnextjs:nodejs /app/node_modules ./node_modulesCOPY --frombuild --chownnextjs:nodejs /app/dist ./distUSER nextjsEXPOSE 3000HEALTHCHECK --interval30s --timeout10s \CMD curl -f http://localhost:3000/health || exit 1CMD [node, dist/index.js]2. 容器安全加固# 安全加固容器FROM node:18-alpineRUN addgroup -g 1001 -S appgroup \adduser -S appuser -u 1001 -G appgroupWORKDIR /appCOPY --chownappuser:appgroup package*.json ./RUN npm ci --onlyproductionCOPY --chownappuser:appgroup . .USER 10013. Docker Compose编排version: 3.8services:app:build:context: .target: productiondepends_on:db:condition: service_healthyhealthcheck:test: [CMD, curl, -f, http://localhost:3000/health]interval: 30stimeout: 10sretries: 3deploy:resources:limits:cpus: 0.5memory: 512M代码审查清单Dockerfile优化依赖在源代码之前复制以优化层缓存多阶段构建分离构建和运行环境生产阶段仅包含必要的产物使用.dockerignore优化构建上下文基础镜像选择适当Alpine vs distroless vs scratch安全加固创建具有特定UID/GID的非root用户容器以非root用户运行USER指令密钥正确管理不在ENV变量或层中基础镜像保持最新并扫描漏洞最小攻击面仅安装必要包常见问题诊断问题症状解决方案构建性能问题慢构建(10分钟)频繁缓存失效多阶段构建、.dockerignore优化、依赖缓存安全漏洞安全扫描失败、暴露密钥、root执行基础镜像更新、密钥管理、非root配置镜像大小问题镜像超过1GB、部署缓慢Distroless镜像、多阶段优化、产物选择网络问题服务通信失败、DNS解析错误自定义网络、健康检查、服务发现高级问题解决模式跨平台构建docker buildx create --name multiarch-builder --usedocker buildx build --platform linux/amd64,linux/arm64 \-t myapp:latest --push .构建缓存优化FROM node:18-alpine AS depsWORKDIR /appCOPY package*.json ./RUN --mounttypecache,target/root/.npm \npm ci --onlyproduction密钥管理FROM alpineRUN --mounttypesecret,idapi_key \API_KEY$(cat /run/secrets/api_key) \# 使用API_KEY进行构建过程最佳实践层缓存优化将依赖安装与源代码复制分离非root用户始终创建特定UID/GID的用户健康检查为生产容器实现健康监控资源限制设置CPU和内存限制防止资源耗尽密钥管理使用Docker secrets而非环境变量最小镜像使用distroless或Alpine基础镜像转交指南当问题需要其他专业知识时推荐转交Kubernetes编排→ kubernetes-expertCI/CD管道→ github-actions-expert数据库容器化→ database-expert基础设施自动化→ devops-expert
返回列表