编程

Docker基础工具免费版

试用

提供Docker容器生命周期、镜像管理、Compose编排与网络卷管理,适合开发者日常使用。Use when 需要代码生成、编程辅助、调试测试、开发部署时使用。不适用于无明确技术栈的模糊需求。适用于独立开发者、企业团队和自动化工作流场景。支持中文交互,无需复杂配置即开即用。输出结果可直接使用,减少二次加工成本。

它能做什么

提供Docker容器生命周期、镜像管理、Compose编排与网络卷管理,适合开发者日常使用。Use when 需要代码生成、编程辅助、调试测试、开发部署时使用。不适用于无明确技术栈的模糊需求。适用于独立开发者、企业团队和自动化工作流场景。支持中文交互,无需复杂配置即开即用。输出结果可直接使用,减少二次加工成本。

技能文档

Docker基础工具 - 免费版

概述

Docker基础工具免费版为开发者提供日常容器管理能力。工具涵盖容器生命周期管理、镜像构建与标签管理、Docker Compose多容器编排以及网络与卷管理,帮助开发者高效进行本地容器化开发. 本版本适合本地开发环境容器化、单机多容器应用部署和容器问题排查调试。所有命令通过 Docker CLI 执行,无需安装额外插件.

核心能力

1. 容器生命周期管理

覆盖容器从创建到销毁的完整生命周期.

输入格式

参数名类型必填说明
inputstringDocker基础工具免费版处理的输入数据或指令
optionsobject附加配置选项,如模式选择、格式偏好等
callback_urlstring异步处理完成后的回调通知URL
# 运行容器
docker run nginx                           # 前台运行
docker run -d nginx                        # 后台运行
docker run --name my-nginx -d nginx        # 命名运行
docker run -p 8080:80 -d nginx             # 端口映射
docker run -e MY_VAR=value -d app          # 环境变量
docker run -v /host/path:/container/path -d app  # 卷挂载
docker run --rm alpine echo "Hello"        # 运行后自动删除
docker run -it ubuntu bash                 # 交互式运行
# 管理容器
docker ps                                  # 查看运行中容器
docker ps -a                               # 查看所有容器
docker stop container_name                 # 停止容器
docker start container_name                # 启动容器
docker restart container_name              # 重启容器
docker rm container_name                   # 删除容器
docker rm -f container_name                # 强制删除运行中容器
docker container prune                     # 清理已停止容器

处理: 解析容器生命周期管理的输入参数,完成核心逻辑,返回结构化响应. 输出: 返回容器生命周期管理的响应数据,包含状态码、结果和日志.

  • 执行此能力时使用input_params参数,支持创建/查询/导出操作

2. 镜像构建与管理

# 构建镜像
docker build -t myapp:1.0 .                       # 基础构建
docker build -f Dockerfile.dev -t myapp:dev .     # 指定Dockerfile
docker build --build-arg VERSION=1.0 -t myapp .   # 构建参数
docker build --no-cache -t myapp .                # 无缓存构建
# 管理镜像
docker images                                     # 列出镜像
docker pull nginx:latest                          # 拉取镜像
docker tag myapp:1.0 myapp:latest                 # 打标签
docker push myrepo/myapp:1.0                      # 推送镜像
docker rmi image_name                             # 删除镜像
docker image prune                                # 清理悬空镜像
docker image prune -a                             # 清理所有未使用镜像

处理: 解析镜像构建与管理的输入参数,完成核心逻辑,返回结构化响应. 输出: 返回镜像构建与管理的响应数据,包含状态码、结果和日志.

  • 执行此能力时使用input_params参数,支持创建/查询/导出操作

3. 容器检查与调试

# 查看日志
docker logs container_name                        # 全部日志
docker logs -f container_name                     # 跟踪日志
docker logs --tail 100 container_name             # 最后100行
docker logs -t container_name                     # 显示时间戳
# 执行命令
docker exec container_name ls -la                 # 执行命令
docker exec -it container_name bash               # 交互式进入
docker exec -u root -it container_name bash       # 以root进入
# 容器检查
docker inspect container_name                     # 详细信息
docker inspect -f '{{.NetworkSettings.IPAddress}}' container_name  # 提取IP
docker stats                                      # 资源使用
docker top container_name                         # 进程信息

处理: 解析容器检查与调试的输入参数,完成核心逻辑,返回结构化响应. 输出: 返回容器检查与调试的响应数据,包含状态码、结果和日志.

  • 执行此能力时使用input_params参数,支持创建/查询/导出操作

4. Docker Compose 编排

# 基础操作
docker-compose up                                # 启动服务
docker-compose up -d                             # 后台启动
docker-compose down                              # 停止并删除
docker-compose down -v                           # 同时删除卷
docker-compose logs                              # 查看日志
docker-compose logs -f web                       # 跟踪指定服务日志
docker-compose up -d --scale web=3               # 扩展服务实例
# 服务管理
docker-compose ps                                # 查看服务状态
docker-compose exec web bash                     # 进入服务容器
docker-compose restart web                       # 重启服务
docker-compose build web                         # 重新构建服务
docker-compose up -d --build                     # 重新构建并启动

处理: 解析Docker Compose 编排的输入参数,完成核心逻辑,返回结构化响应. 输出: 返回Docker Compose 编排的响应数据,包含状态码、结果和日志.

  • 执行此能力时使用input_params参数,支持创建/查询/导出操作

5. 网络与卷管理

# 网络管理
docker network ls                                # 列出网络
docker network create mynetwork                  # 创建网络
docker network connect mynetwork container_name  # 连接网络
docker network disconnect mynetwork container_name  # 断开网络
docker network inspect mynetwork                 # 查看网络详情
docker network rm mynetwork                      # 删除网络
# 卷管理
docker volume ls                                 # 列出卷
docker volume create myvolume                    # 创建卷
docker volume inspect myvolume                   # 查看卷详情
docker volume rm myvolume                        # 删除卷
docker volume prune                              # 清理未使用卷
docker run -v myvolume:/data -d app              # 使用命名卷

处理: 解析网络与卷管理的输入参数,完成核心逻辑,返回结构化响应. 输出: 返回网络与卷管理的响应数据,包含状态码、结果和日志. 能力覆盖范围:本skill的核心能力覆盖以下场景关键词:镜像管理、编排与网络卷管理、适合开发者日常使、面向开发者的、容器管理辅助工具、涵盖容器生命周期、镜像构建管理、编排与网络卷操作、核心能力、镜像构建与标签管、多容器编排、日志查看与容器调等。这些关键词对应description中声明的使用场景,均已在上述能力点中提供对应的操作支持.

  • 执行此能力时使用input_params参数,支持创建/查询/导出操作

使用场景

场景一:本地开发环境搭建

使用Docker快速搭建本地开发环境.

# 开发容器:挂载代码并运行开发服务器
docker run -it --rm \
  -v $(pwd):/app \
  -w /app \
  -p 3000:3000 \
  node:18 \
  npm run dev
# ...
# 数据库容器:持久化数据
docker run -d \
  --name postgres \
  -e POSTGRES_PASSWORD=secret \
  -e POSTGRES_DB=mydb \
  -v postgres-data:/var/lib/postgresql/data \
  -p 5432:5432 \
  postgres:15
# ...
# Redis缓存容器
docker run -d \
  --name redis \
  -p 6379:6379 \
  redis:7-alpine

场景二:多容器应用编排

使用Docker Compose编排多容器应用.

# docker-compose.yml
version: '3.8'
services:
  web:
    build: .
    ports:
      - "3000:3000"
    environment:
      - DB_HOST=db
      - REDIS_HOST=redis
    depends_on:
      - db
      - redis
    volumes:
      - .:/app
      - /app/node_modules
# ...
  db:
    image: postgres:15
    environment:
      POSTGRES_PASSWORD: secret
      POSTGRES_DB: mydb
    volumes:
      - postgres-data:/var/lib/postgresql/data
    ports:
      - "5432:5432"
# ...
  redis:
    image: redis:7-alpine
    ports:
      - "6379:6379"
# ...
volumes:
  postgres-data:
# 启动完整开发环境
docker-compose up -d
# ...
# 查看服务状态
docker-compose ps
# ...
# 查看Web服务日志
docker-compose logs -f web
# ...
# 扩展Web服务实例
docker-compose up -d --scale web=3
# ...
# 停止并清理
docker-compose down -v

错误处理

快速排查容器运行问题.

#!/bin/bash
# 容器问题排查脚本
CONTAINER="${1:?用法: debug-container.sh }"
# ...
echo "=== 容器诊断: $CONTAINER ==="
# ...
# 1. 容器状态
echo "--- 容器状态 ---"
docker ps -a --filter "name=$CONTAINER" --format "table {{.Names}}\t{{.Status}}\t{{.Ports}}"
# ...
# 2. 容器资源使用
echo -e "\n--- 资源使用 ---"
docker stats --no-stream "$CONTAINER"
# ...
# 3. 最近日志
echo -e "\n--- 最近日志(50行) ---"
docker logs --tail 50 "$CONTAINER"
# ...
# 4. 容器详细信息
echo -e "\n--- 网络配置 ---"
docker inspect -f 'IP: {{.NetworkSettings.IPAddress}}' "$CONTAINER"
docker inspect -f '端口映射: {{.NetworkSettings.Ports}}' "$CONTAINER"
# ...
echo -e "\n--- 挂载卷 ---"
docker inspect -f '{{range .Mounts}}{{.Source}} -> {{.Destination}}{{"\n"}}{{end}}' "$CONTAINER"
序号错误场景原因处理方式优先级
1输入参数缺失用户未提供必要参数提示用户提供所需参数后执行ping命令测试网络连通性,检查防火墙和代理设置连接后重新执行命令P0
2执行超时处理时间过长检查输入数据量,分批处理P1
3输出格式错误结果不符合预期格式检查output_format参数配置P1

不适用场景

以下场景Docker基础工具免费版不适合处理:

  • 无明确技术栈的模糊需求
  • 纯架构设计决策
  • 运维部署管理

触发条件

需要代码生成、编程辅助、调试测试、开发部署时使用。不适用于非本工具能力范围的需求.

快速开始

Step 1:验证Docker环境

docker version
docker info
docker run hello-world

Step 2:触发容器操作

在 AI Agent 中输入指令:

请帮我用Docker启动一个Node.js开发环境,映射端口3000并挂载当前目录.

Step 3:管理容器

Agent 会生成并执行相应的 Docker 命令,提供容器管理建议. 响应解析: 完成完成后,查看输出响应确认任务状态。成功时输出包含解析摘要和响应数据;失败时根据错误信息排查问题,查阅错误解析章节获取恢复步骤.

示例

开发环境Docker配置

# .docker-dev.yml - 开发环境配置
version: "1.0"
# ...
# 开发容器默认配置
dev_container:
  base_image: node:18
  work_dir: /app
  ports:
    - 3000:3000
    - 9229:9229  # 调试端口
  volumes:
    - .:/app
    - node_modules:/app/node_modules
  environment:
    - NODE_ENV=development
# ...
# 常用服务
services:
  database:
    image: postgres:15
    port: 5432
    persist: true
  cache:
    image: redis:7-alpine
    port: 6379
    persist: false
# ...
# 清理策略
cleanup:
  prune_images: false
  prune_volumes: false
  prune_containers: true

多阶段Dockerfile示例

# 开发用Dockerfile
FROM node:18 AS builder
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
RUN npm run build
# ...
FROM nginx:alpine
COPY --from=builder /app/dist /usr/share/nginx/html
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]

最佳实践

  1. 使用.dockerignore:减少构建上下文体积
# .dockerignore
node_modules
npm-debug.log
.git
.gitignore
dist
.env
*.md
  1. 合并RUN指令:减少镜像层数
# 不推荐:多层
RUN apt-get update
RUN apt-get install -y curl
RUN rm -rf /var/lib/apt/lists/*
# ...
# 推荐:合并为一层
RUN apt-get update && \
    apt-get install -y curl && \
    rm -rf /var/lib/apt/lists/*
  1. 使用多阶段构建:减小最终镜像体积
FROM node:18 AS builder
WORKDIR /app
COPY . .
RUN npm ci && npm run build
# ...
FROM node:18-alpine
WORKDIR /app
COPY --from=builder /app/dist ./dist
COPY --from=builder /app/node_modules ./node_modules
CMD ["node", "dist/index.js"]
  1. 始终打标签:避免使用latest标签在生产环境
docker build -t myapp:latest .
  1. 定期清理:释放磁盘空间
docker system df                    # 查看磁盘使用
docker system prune                 # 清理未使用资源
docker system prune -a              # 清理所有未使用镜像
docker system prune --volumes       # 同时清理卷

常见问题

Q1:容器启动后立即退出怎么办?

# 查看退出原因
docker logs container_name
State.ExitCode}}' container_name
# ...
# 常见原因:
# 1. 前台进程退出 -> 使用 -d 或确保有前台进程
# 2. 命令执行完成 -> 使用 -it 交互模式
# 3. 配置错误 -> 检查环境变量和配置文件
# 调试模式启动
docker run -it --entrypoint bash myapp

Q2:如何进入运行中的容器?

# 使用exec进入(推荐)
docker exec -it container_name bash
docker exec -it container_name sh    # alpine镜像
# 使用attach连接到主进程
docker attach container_name
# Ctrl+P, Ctrl+Q 分离(不停止容器)

Q3:端口冲突怎么办?

# 查找占用端口的进程
lsof -i :8080            # macOS/Linux
netstat -ano | findstr 8080  # Windows
# 修改端口映射
docker run -p 9080:80 -d nginx    # 改用9080端口
# 查看容器端口映射
docker ps --format "table {{.Names}}\t{{.Ports}}"

Q4:免费版与专业版有何区别?

能力维度免费版专业版
容器编排单机Compose多机Swarm/K8s
镜像优化基础多阶段深度优化分析
安全扫描不支持漏洞扫描
监控告警手动查看持续监控
批量操作不支持批量管理
CI/CD集成手动流水线集成

Q5:Docker Compose版本如何选择?

# 使用docker compose(v2,推荐)
docker compose up -d
# ...
# 使用docker-compose(v1,旧版)
docker-compose up -d
# ...
# 检查版本
docker compose version

依赖说明

运行环境

  • Agent 平台:支持 SKILL.md 的任意 AI Agent(Claude Code / Cursor / Codex / Gemini CLI 等)
  • 操作系统:Windows / macOS / Linux
  • 运行时:Docker Engine 20.10+ / Docker Compose v2+

依赖详情

依赖项类型是否必需获取方式
Docker Engine运行时必需docker.com 下载安装
Docker Compose工具推荐Docker Desktop自带或单独安装
LLM APIAPI必需由 Agent 内置 LLM 提供

API Key 配置

  • 本 Skill 基于 Markdown 指令,无需额外 API Key
  • 如需推送镜像到私有仓库,需配置仓库凭证:
# 登录私有镜像仓库
docker login registry.example.com
# 输入用户名和密码
# 或使用配置文件
# ~/.docker/config.json

可用性分类

  • 分类:MD+EXEC(纯 Markdown 指令,需要 exec 命令行执行能力)
  • 说明:基于 Markdown 的 AI Skill,通过自然语言指令驱动 Agent 执行 Docker 管理任务
  • 适用规模:单机环境,适合开发和测试场景

已知限制

  • 本地运行,不支持多设备同步

输出格式

{
  "success": true,
  "data": {
    "result": "Docker基础工具免费版处理结果",
    "execution_time": "0.5s",
    "metadata": {
      "version": "1.0",
      "processor": "docker essentials"
    }
  },
  "execution_log": ["解析输入参数", "执行核心处理", "格式化输出结果"],
  "error": null
}

相关技能

提供Docker V1经典命令集与基础容器管理,适合维护旧版Docker环境的开发者。Use when 需要代码生成、编程辅助、调试测试、开发部署时使用。不适用于无明确技术栈的模糊需求。适用于独立开发者、企业团队和自动化工作流场景。支持中文交互,无需复杂配置即开即用。输出结果可直接使用,减少二次加工成本。

1 次安装

提供Git版本控制核心命令,涵盖初始化、提交、分支、远程同步与历史管理,适合开发者入门。Use when 需要代码生成、编程辅助、调试测试、开发部署时使用。不适用于无明确技术栈的模糊需求。适用于独立开发者、企业团队和自动化工作流场景。支持中文交互,无需复杂配置即开即用。输出结果可直接使用,减少二次加工成本。

1 次安装

面向研发团队的高级Git版本控制工具,包含交互式变基、历史重写、子模块成批管控、仓库性能调优与团队协作工作流。核心能力:. 用于需要git。适用于独立开发者、企业团队和自动化工作流场景,提供结构化输出与错误处理机制,支持中文交互,即开即用 功能涵盖: es。Use when 需要提升效率、自动化流程、批量处理、工作流优化时使用。不适用于需要人工创意判断的任务。 功能涵盖: essentials。

Docker安全沙箱环境,支持隔离运行与基础资源限制,适合代码测试。Use when 需要代码生成、编程辅助、调试测试、开发部署时使用。不适用于无明确技术栈的模糊需求。适用于独立开发者、企业团队和自动化工作流场景。支持中文交互,无需复杂配置即开即用。输出结果可直接使用,减少二次加工成本。提供结构化输出和错误处理机制。

1 次安装

基础 DNS 记录配置工具,支持 TTL 管理、邮件认证与迁移前准备,适合个人站点。Use when 需要消息发送、通知推送、邮件短信、通信集成时使用。不适用于垃圾信息群发。适用于独立开发者、企业团队和自动化工作流场景。支持中文交互,无需复杂配置即开即用。输出结果可直接使用,减少二次加工成本。提供结构化输出和错误处理机制。

Podman/Docker容器检查工具,支持容器状态查询与日志分析。Use when 需要数据分析、报表生成、统计洞察、数据可视化时使用。不适用于实时流数据处理。适用于独立开发者、企业团队和自动化工作流场景。支持中文交互,无需复杂配置即开即用。输出结果可直接使用,减少二次加工成本。提供结构化输出和错误处理机制。

1 次安装