mcpField
D
docker-2025-features

docker-2025-features

github.com/josiahsiegel云与 DevOps59176 次安装19 周前更新
代码仓库

关于 docker-2025-features

介绍 2025 年 Docker 功能与变更的技能,内容涵盖 Engine、Desktop、Compose 和 BuildKit,面向处理容器、本地模型、安全与部署流程的开发者。

主要功能

  1. 01Docker Engine 28 挂载与调试端点
  2. 02Docker Desktop MCP 目录与 Model Runner
  3. 03AI 助手和容器隔离指南
  4. 04多节点 Kubernetes 测试与 Bake
  5. 05Compose 转换与 watch 功能
  6. 06BuildKit 更新与弃用项

适用场景

  1. 01查阅 Docker 2025 功能指引
  2. 02使用镜像挂载共享只读数据
  3. 03在 Docker Desktop 探索 MCP 工具
  4. 04测试多节点 Kubernetes 部署

MCP 相关

介绍 Docker Desktop MCP Catalog,作为发现和部署容器化 MCP 服务、管理 Agent 工具的目录。

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/josiahsiegel/claude-plugin-marketplace --skill docker-2025-features

安装后在 Claude Code 中输入/docker-2025-features确认已加载。

附带文件references/migration-troubleshooting-timeline.md

详细介绍

🚨 关键指南

Windows 文件路径要求

强制要求:在 Windows 上始终使用反斜杠表示文件路径

在 Windows 上使用 Edit 或 Write 工具时,必须在文件路径中使用反斜杠(\),不能使用正斜杠(/)。

示例:

  • ❌ 错误:D:/repos/project/file.tsx
  • ✅ 正确:D:\repos\project\file.tsx

这适用于:

  • Edit 工具的 file_path 参数
  • Write 工具的 file_path 参数
  • 在 Windows 系统上进行的所有文件操作
文档指南

除非用户明确要求,否则绝不要创建新的文档文件。

  • 优先事项:更新现有的 README.md 文件,而不是创建新文档
  • 保持仓库整洁:保持仓库根目录整洁——除非用户另有要求,否则只保留 README.md
  • 风格:文档应简洁、直接且专业,避免 AI 生成式语气
  • 用户偏好:仅在用户明确要求提供文档时,才创建其他 .md 文件

Docker 2025 年功能

本技能涵盖 Docker 在 2025 年推出的最新功能,确保你能充分利用前沿能力,提升安全性、性能和开发者体验。

Docker Engine 28 功能(2025 年)

1. 镜像类型挂载

功能介绍: 将镜像目录结构直接挂载到容器中,无需解压到卷。

主要能力:

  • 将镜像层挂载为只读文件系统
  • 在容器之间共享通用数据,无需重复存储
  • 缩短数据密集型容器的启动时间
  • 减少磁盘空间占用

使用方法:

# Mount entire image
docker run --rm \
  --mount type=image,source=mydata:latest,target=/data \
  alpine ls -la /data

# Mount specific path from image
docker run --rm \
  --mount type=image,source=mydata:latest,image-subpath=/config,target=/app/config \
  alpine cat /app/config/settings.json

适用场景:

  • 分发只读配置
  • 在容器之间共享 ML 模型权重
  • 提供静态资源
  • 用于测试的不可变数据集
2. 版本化调试端点

功能介绍: 现在可以通过标准的版本化 API 路径访问调试端点。

**之前:**只能通过 /debug/vars 等根路径访问 **现在:**也可以通过 /v1.48/debug/vars、/v1.48/debug/pprof/* 访问

可用端点:

  • /v1.48/debug/vars - 运行时变量
  • /v1.48/debug/pprof/ - 性能分析索引
  • /v1.48/debug/pprof/cmdline - 命令行
  • /v1.48/debug/pprof/profile - CPU 性能分析
  • /v1.48/debug/pprof/trace - 执行跟踪
  • /v1.48/debug/pprof/goroutine - Goroutine 堆栈

使用方法:

# Access debug vars through versioned API
curl --unix-socket /var/run/docker.sock http://localhost/v1.48/debug/vars

# Get CPU profile
curl --unix-socket /var/run/docker.sock http://localhost/v1.48/debug/pprof/profile?seconds=30 > profile.out
3. 组件更新

Engine 28.3.3 中的最新版本:

  • Buildx v0.26.1 - 提升构建性能
  • Compose v2.40.3 - 最新的 Compose 功能
  • BuildKit v0.25.1 - 安全性改进
  • Go 运行时 1.24.8 - 性能优化
4. 安全修复

**CVE-2025-54388:**修复了 firewalld 重新加载问题:即使容器端口绑定到 loopback,本地网络仍可能访问已发布的容器端口。

**影响:**对于绑定到 127.0.0.1、预期仅允许本地主机访问的容器,此问题尤为关键。

5. 弃用事项

Raspberry Pi OS 32 位(armhf):

  • Docker Engine 28 是最后一个支持 armhf 的主要版本
  • 从 Engine 29 开始,不再提供新的 armhf 软件包
  • 请迁移到 64 位操作系统,或使用 Engine 28.x LTS

Docker Desktop 4.47 功能(2025 年 10 月)

1. MCP 目录集成

功能介绍: Model Context Protocol(MCP)服务目录,包含 100 多个经过验证且容器化的工具。

主要能力:

  • 发现和搜索 MCP 服务
  • 一键部署 MCP 工具
  • 与 Docker AI 和 Model Runner 集成
  • 集中管理 AI Agent 工具

访问方式:

适用场景:

  • 发现 AI Agent 工具
  • 工作流自动化
  • 配置开发环境
  • 集成 CI/CD 工具
2. Model Runner 增强功能

新增内容:

  • 改进了模型管理界面
  • 增强了推理 API
  • 提升了推理引擎性能
  • 在 Docker Desktop 中检查模型卡
  • 用于监控的 docker model requests 命令

使用方法:

# List running models
docker model ls

# View model details (new: model cards)
docker model inspect llama2-7b

# Monitor requests and responses (NEW)
docker model requests llama2-7b

# Performance metrics
docker stats $(docker model ls -q)
3. 静默组件更新

内容: Docker Desktop 会自动更新内部组件,无需重启整个应用程序。

优势:

  • 更快地应用安全补丁
  • 减少对工作流的干扰
  • 自动更新 Compose、BuildKit、Containerd
  • 在后台推送更新

配置:

  • 默认启用
  • 可在 Settings > General 中禁用
  • 仅针对重大更新发送通知
4. CVE 修复

CVE-2025-10657(v4.47): 修复了在 4.46.0 中增强型容器隔离的 Docker Socket 命令限制未生效的问题。

CVE-2025-9074(v4.46): 修复了恶意容器可逃逸并在未挂载 socket 的情况下访问 Docker Engine 的问题。

Docker Desktop 4.38-4.45 功能

1. Docker AI 助手(Project Gordon)

内容: 集成在 Docker Desktop 和 CLI 中的 AI 助手,可为容器开发提供智能支持。

主要功能:

  • 自然语言命令界面
  • 感知上下文的故障排查
  • 自动优化 Dockerfile
  • 实时提供最佳实践建议
  • 智能诊断错误

使用方法:

# Enable in Docker Desktop Settings > Features > Docker AI (Beta)

# Ask questions in natural language
"Optimize my Python Dockerfile"
"Why is my container restarting?"
"Suggest secure nginx configuration"

本地 Model Runner:

  • 在你的计算机上直接运行 AI 模型(llama.cpp)
  • 无需依赖云 API
  • 保护隐私(数据保留在本地)
  • 通过 GPU 加速提升性能
  • 可离线使用
2. 增强型容器隔离(ECI)

内容: 额外的安全层,可限制 Docker socket 访问和容器逃逸途径。

安全优势:

  • 防止未经授权访问 Docker socket
  • 默认限制容器功能
  • 阻止常见的逃逸技术
  • 强制实施更严格的资源边界
  • 审计容器操作

启用方法:

# Docker Desktop Settings > Security > Enhanced Container Isolation
# Or via CLI:
docker desktop settings set enhancedContainerIsolation=true

适用场景:

  • 多租户环境
  • 安全关键型应用
  • 合规要求(PCI-DSS、HIPAA)
  • 零信任架构
  • 运行不可信代码的开发环境

兼容性:

  • 可能导致需要访问 Docker socket 的容器无法正常运行
  • 需要 Docker Desktop 4.38+
  • 支持 Windows(WSL2)、macOS、Linux Desktop
3. Model Runner

内容: 内置 AI 模型执行引擎,开发者可通过它在本地运行大模型。

功能:

  • 无需云服务即可运行 AI 模型
  • 最佳 GPU 加速
  • 保护隐私的推理
  • 支持多种模型格式
  • 与 Docker AI 集成

使用方法:

# Install via Docker Desktop Extensions
# Or use CLI:
docker model run llama2-7b

# View running models:
docker model ls

# Stop model:
docker model stop MODEL_ID

优势:

  • 无 API 费用
  • 完全保护数据隐私
  • 可离线使用
  • 推理速度更快(本地 GPU)
  • 可集成到开发工作流中
4. 多节点 Kubernetes 测试

内容: 直接在 Docker Desktop 中使用多节点集群测试 Kubernetes 部署。

此前: 仅支持单节点 现在: 支持 2-5 节点集群,可进行真实场景测试

启用方法:

# Docker Desktop Settings > Kubernetes > Enable multi-node
# Specify node count (2-5)

适用场景:

  • 测试跨节点的 Pod 调度
  • 验证亲和性/反亲和性规则
  • 测试网络策略
  • 模拟节点故障
  • 验证 StatefulSet 和 DaemonSet
5. Bake(正式发布)

内容: 用于复杂多目标构建的高级构建编排工具。

此前: 实验性功能 现在: 正式发布,可用于生产环境

功能:

# docker-bake.hcl
target "app" {
  context = "."
  dockerfile = "Dockerfile"
  tags = ["myapp:latest"]
  platforms = ["linux/amd64", "linux/arm64"]
  cache-from = ["type=registry,ref=myapp:cache"]
  cache-to = ["type=registry,ref=myapp:cache,mode=max"]
}

target "test" {
  inherits = ["app"]
  target = "test"
  output = ["type=local,dest=./coverage"]
}
# Build all targets
docker buildx bake

# Build specific target
docker buildx bake test

Moby 25 引擎更新

性能改进

1. 更快的容器启动:

  • 冷启动速度提升 20-30%
  • 改进层提取
  • 优化网络初始化

2. 更完善的资源管理:

  • 内存核算更加准确
  • 改进 CPU 节流
  • 更好地支持 cgroup v2

3. 存储驱动增强:

  • 提升 overlay2 性能
  • 改进磁盘空间管理
  • 更快地拉取镜像
安全更新

1. 增强型 Seccomp 配置文件:

{
  "defaultAction": "SCMP_ACT_ERRNO",
  "architectures": ["SCMP_ARCH_X86_64", "SCMP_ARCH_AARCH64"],
  "syscalls": [
    {
      "names": ["read", "write", "exit"],
      "action": "SCMP_ACT_ALLOW"
    }
  ]
}

2. 改进 AppArmor 集成:

  • 更好地生成 Docker 配置文件
  • 减少误报
  • 增强日志记录

3. 用户命名空间改进:

  • 更易于配置
  • 更好的兼容性
  • 性能优化

Docker Compose v2.40.3+ 功能(2025)

Compose Bridge(转换为 Kubernetes)

简介: 通过一条命令将本地 compose.yaml 文件转换为 Kubernetes 清单。

主要功能:

  • 自动将 Compose 服务转换为 Kubernetes Deployment
  • 服务间映射
  • 将卷转换为 PersistentVolumeClaims
  • 生成 ConfigMap 和 Secret
  • Ingress 配置

使用方法:

# Convert compose file to Kubernetes manifests
docker compose convert --format kubernetes > k8s-manifests.yaml

# Or use compose-bridge directly
docker compose-bridge convert docker-compose.yml

# Apply to Kubernetes cluster
kubectl apply -f k8s-manifests.yaml

转换示例:

# docker-compose.yml
services:
  web:
    image: nginx:latest
    ports:
      - "80:80"
    volumes:
      - data:/usr/share/nginx/html

volumes:
  data:

# Converts to Kubernetes:
# - Deployment for 'web' service
# - Service exposing port 80
# - PersistentVolumeClaim for 'data'

使用场景:

  • 从本地开发迁移到 Kubernetes
  • 在本地测试 Kubernetes 部署
  • 转换 CI/CD 流水线
  • 多环境部署策略
重大变更

1. 弃用 Version 字段:

# OLD (deprecated):
version: '3.8'
services:
  app:
    image: nginx

# NEW (2025):
services:
  app:
    image: nginx

现在会忽略 version 字段,可以省略。

新功能

1. 使用 initial_sync 开发 Watch:

services:
  app:
    build: .
    develop:
      watch:
        - action: sync
          path: ./src
          target: /app/src
          initial_sync: full  # NEW: Sync all files on start

2. Image 卷类型:

services:
  app:
    volumes:
      - type: image
        source: mydata:latest
        target: /data
        read_only: true

3. Build Print:

# Debug complex build configurations
docker compose build --print > build-config.json

4. Config 禁用环境变量解析:

# View raw config without environment variable substitution
docker compose config --no-env-resolution

5. 使用 Prune 的 Watch:

# Automatically prune unused resources during watch
docker compose watch --prune

6. 使用 Quiet 运行:

# Reduce output noise
docker compose run --quiet app npm test

BuildKit 更新(2025 年)

新功能

1. 支持 Git SHA-256:

# Use SHA-256 based repositories
ADD https://github.com/user/repo#sha256:abc123... /src

2. 增强 COPY/ADD --exclude:

# Now generally available (was labs-only)
COPY --exclude=*.test.js --exclude=*.md . /app

3. ADD --unpack 支持 --chown:

# Extract and set ownership in one step
ADD --unpack=true --chown=appuser:appgroup archive.tar.gz /app

4. Git 查询参数:

# Fine-grained Git clone control
ADD https://github.com/user/repo.git?depth=1&branch=main /src

5. 镜像校验和验证:

# Verify image integrity
FROM alpine:3.19@sha256:abc123...
# BuildKit verifies checksum automatically
安全增强

1. 改进前端验证:

# Always use official Docker frontends
# syntax=docker/dockerfile:1

# Pin with digest for maximum security
# syntax=docker/dockerfile:1@sha256:ac85f380a63b13dfcefa89046420e1781752bab202122f8f50032edf31be0021

2. 远程缓存改进:

  • 修复并发问题
  • 改进循环处理
  • 增强安全性

2025 年功能最佳实践

  • Docker AI — 提供具体上下文,验证生成的配置,并结合传统安全工具;对于安全关键型应用,切勿盲目信任 AI 或跳过人工审核。
  • 增强容器隔离 — 为安全敏感型工作负载启用,测试兼容性,记录套接字访问情况,并遵循最小权限原则;未经测试不要启用,也不要随意授予套接字访问权限。
  • 现代 Compose 文件 — 删除 version 字段,使用新功能(type: image 卷、watch 改进、--print、--quiet),并在 Compose v2.40+ 下测试。

迁移、故障排查与采用时间表

有关迁移到 Docker Desktop 4.38+ 的路径、2025 年新功能(compose-bridge、hardened-mode 问题、BuildKit 历史记录)的故障排查,以及建议的功能采用时间表,请参阅 references/migration-troubleshooting-timeline.md。

评论

支持 Markdown