Docker 配置(免费)
技能概述
编写容器化配置:适用于应用容器化、环境一致性、CI/CD 部署场景,解决「Dockerfile 写不对、镜像太大、容器跑不起来」的问题。最终目的:产出可直接套用的 Docker 配置提示词:用户只需给应用信息,AI 即输出可构建的配置方案。本技能内置可直接套用的提示词模板,加载后 AI 按模板工作,无需额外配置。
适用场景
- 编写容器化配置:适用于应用容器化、环境一致性、CI/CD 部署场景,解决「Dockerfile 写不对、镜像太大、容器跑不起来」的问题
- 典型目的:产出可直接套用的 Docker 配置提示词:用户只需给应用信息,AI 即输出可构建的配置方案
调用方式
当用户提出以下类型的需求时,激活本技能:
- "请帮我Docker 配置"
- "用Docker 配置的方法处理这个内容"
- "按Docker 配置模板生成"
激活后,按下方【内置提示词模板】执行:将用户提供的信息填入模板占位处(____),直接输出完整结果;用户未提供的信息保持占位并提示其补充。
内置提示词模板
【角色设定】
你是容器化工程师,擅长编写规范、安全、可构建的 Docker 配置。
【任务】
根据我的应用信息,帮我编写 Docker 配置。
【我会提供的信息】
1. 应用类型(前端/后端/数据库/全栈):____
2. 语言与运行时(Node/Python/Java/Go 等及版本):____
3. 依赖与启动命令:____
4. 需要暴露的端口:____
5. 环境变量/配置文件(如有):____
【编写要求】
1. 输出 Dockerfile(可直接构建)+ 必要的 docker-compose.yml(如多服务)。
2. Dockerfile 规范:基础镜像选型(带版本、尽量小)、依赖安装分层(利用缓存)、非 root 运行、多阶段构建(如适用)。
3. 安全要求:不把密钥写进镜像、最小化暴露端口、设置资源限制。
4. 附构建与运行命令(build/run/compose)。
5. 附验证方法(怎么确认容器正常)。
【输出格式】
一、Dockerfile(完整)
二、docker-compose.yml(如需要)
三、构建运行命令
四、安全与优化说明(3 条)
请直接输出,不要询问多余信息;信息缺失处用「____」占位。
输出要求
- 严格按模板指定的输出格式分节输出,不省略、不额外发挥。
- 内容真实合规:不编造数据,不确定处标注「需核实」;涉及专业领域以专业来源为准。
- 输出可直接复制使用,缺失信息用
____占位并提示用户补充。
注意事项
- 本技能为免费技能,无支付环节。
- 如需该场景的高阶版提示词与更多玩法,可在本技能基础上要求 AI 深化;高阶版含五步工作流与合规自检。
风险提示
- 本工具输出结果仅供参考,不构成专业意见或收益承诺;重要决策请自行核实并判断。
- 免费工具不提供持续服务保证,具体以 SKILLHub 平台规则为准。
🚀 高阶用法与进阶技巧
1. 多阶段构建优化
场景描述: 对于大型应用,使用多阶段构建可以显著减少最终镜像的大小。
- 参数/步骤:
- 在 Dockerfile 中定义多个 FROM 指令,例如:
```dockerfile
FROM node:14 AS build-stage
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
RUN npm run build
FROM nginx:alpine AS production-stage
COPY --from=build-stage /app/dist /usr/share/nginx/html
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]
```
- 组合技巧: 在
docker-compose.yml中使用多服务,每个服务对应不同的镜像构建阶段。
2. 安全与资源限制配置
场景描述: 确保容器在安全和性能上达到最佳实践。
- 参数/步骤:
- 使用非 root 用户运行容器:
dockerfile
RUN useradd -m myuser && chown -R myuser /app
USER myuser
- 设置资源限制:
yaml
services:
app:
image: my-app
deploy:
resources:
limits:
cpus: '0.5'
memory: 512M
reservations:
cpus: '0.25'
memory: 256M
- 组合技巧: 在 docker-compose.yml 中配置网络策略,限制容器之间的通信。
3. 自动化测试与验证
场景描述: 确保每次构建的镜像都能正常运行。
- 参数/步骤:
- 在 Dockerfile 中添加健康检查:
dockerfile
HEALTHCHECK --interval=5s --timeout=2s \
CMD curl -f localhost || exit 1
- 使用 docker-compose 进行集成测试:
bash
docker-compose up -d
docker-compose exec app /bin/sh -c "curl -f localhost"
- 组合技巧: 结合 CI/CD 工具(如 Jenkins、GitLab CI)自动运行测试。
4. 日志与监控集成
场景描述: 实现容器的日志收集和实时监控。
- 参数/步骤:
- 使用 docker-compose 配置日志驱动:
yaml
services:
app:
image: my-app
logging:
driver: "json-file"
options:
max-size: "10m"
max-file: "3"
- 结合 ELK Stack 或 Prometheus 进行日志和监控:
yaml
services:
elasticsearch:
image: docker.elastic.co/elasticsearch/elasticsearch:7.10.1
logstash:
image: docker.elastic.co/logstash/logstash:7.10.1
kibana:
image: docker.elastic.co/kibana/kibana:7.10.1
- 组合技巧: 在 docker-compose.yml 中配置 Prometheus 和 Grafana 监控服务。
📋 实战案例(3个真实场景)
案例 1:前端应用容器化
场景描述: 将一个 React 应用容器化。
- 输入示例:
- 应用类型: 前端
- 语言与运行时: Node.js v14
- 依赖与启动命令: npm install && npm run build
- 需要暴露的端口: 80
- 环境变量/配置文件: REACT_APP_API_URL=[API服务地址]
- 输出要点:
```dockerfile
FROM node:14 AS build-stage
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
RUN npm run build
FROM nginx:alpine AS production-stage
COPY --from=build-stage /app/build /usr/share/nginx/html
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]
yaml
version: '3'
services:
web:
image: my-frontend-app
ports:
- "80:80"
environment:
- REACT_APP_API_URL=[API服务地址]
```
案例 2:后端应用容器化
场景描述: 将一个 Spring Boot 应用容器化。
- 输入示例:
- 应用类型: 后端
- 语言与运行时: Java 11
- 依赖与启动命令: ./mvnw clean package
- 需要暴露的端口: 8080
- 环境变量/配置文件: SPRING_PROFILES_ACTIVE=prod
- 输出要点:
```dockerfile
FROM maven:3.8-jdk-11 AS build-stage
WORKDIR /app
COPY pom.xml .
RUN mvn dependency:go-offline -B
COPY src ./src
RUN mvn clean package
FROM openjdk:11-jre-slim
WORKDIR /app
COPY --from=build-stage /app/target/*.jar app.jar
EXPOSE 8080
CMD ["java", "-jar", "app.jar"]
yaml
version: '3'
services:
backend:
image: my-spring-boot-app
ports:
- "8080:8080"
environment:
- SPRING_PROFILES_ACTIVE=prod
```
案例 3:数据库容器化
场景描述: 将一个 MySQL 数据库容器化。
- 输入示例:
- 应用类型: 数据库
- 语言与运行时: MySQL 5.7
- 依赖与启动命令: mysqld
- 需要暴露的端口: 3306
- 环境变量/配置文件: MYSQL_ROOT_PASSWORD=root
- 输出要点:
dockerfile FROM mysql:5.7 ENV MYSQL_ROOT_PASSWORD root COPY init.sql /docker-entrypoint-initdb.d/
yaml version: '3' services: db: image: my-mysql-db ports: - "3306:3306" environment: - MYSQL_ROOT_PASSWORD=root
💰 价值对比(为什么这个工具值得用)
1. 减少开发与维护成本
- 优势: 自动化生成 Docker 配置,减少手动编写错误和重复工作。
- 具体表现: 用户只需提供应用基本信息,AI 即可输出完整的 Dockerfile 和 docker-compose.yml,大大缩短了配置时间。
2. 提高环境一致性
- 优势: 确保开发、测试和生产环境的镜像一致,避免因环境差异导致的问题。
- 具体表现: AI 生成的 Docker 配置遵循最佳实践,确保容器在不同环境中都能稳定运行。
3. 加速 CI/CD 流程
- 优势: 自动化测试与验证步骤,快速反馈构建结果。
- 具体表现: 结合
docker-compose和自动化工具(如 Jenkins、GitLab CI),实现持续集成和部署的自动化。
🎯 使用场景与适用人群
适用人群
- 开发者:需要快速容器化应用,减少配置工作量。
- DevOps 工程师:希望提高环境一致性,加速 CI/CD 流程。
- 小团队:资源有限,需要高效管理开发和运维。
使用场景
- 应用容器化: 对于新项目或现有项目的容器化需求,快速生成 Docker 配置。
- 环境一致性: 确保不同环境下的镜像一致,避免因环境差异导致的问题。
- CI/CD 部署: 结合自动化工具,实现持续集成和部署的自动化流程。
- 学习与教育: 用于教学或培训,帮助初学者快速掌握 Docker 配置方法。
- 多语言应用: 支持多种编程语言和运行时环境,适用于全栈项目。
更多同类技能(按次付费)
这个技能只覆盖单一场景。同类场景已经整理成完整合集,
一次调用就能拿到整套提示词,省去每次重新拼提示词的时间。
推荐:编程开发合集(20 个提示词) — 代码审查 / 重构建议 / 测试用例 / 技术文档 / 架构设计等 20 个场景
在 SkillHub 搜索对应的合集技能即可查看,单次调用 ¥9.90,按使用次数计费。
更多同类技能(按次付费)
这个技能只覆盖单一场景。同类场景已经整理成完整合集,
一次调用就能拿到整套提示词,省去每次重新拼提示词的时间。
推荐:编程开发合集(20 个提示词) — 代码审查 / 重构建议 / 测试用例 / 技术文档 / 架构设计等 20 个场景
在 SkillHub 搜索对应的合集技能即可查看,单次调用 ¥9.90,按使用次数计费。
<!-- upsell:end -->