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. 01Dockerの2025年機能に関する指針の確認
  2. 02イメージマウントによる読み取り専用データの共有
  3. 03Docker DesktopでのMCPツールの探索
  4. 04マルチノード Kubernetes デプロイのテスト

MCP 対応

Docker Desktop MCP Catalogを、コンテナ化されたMCPサーバーの検索・デプロイとエージェントツール管理のためのカタログとして紹介しています。

インストール

コマンドをコピーしてターミナルで実行します。

$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 の機能

このスキルでは、2025 年に導入された最新の Docker 機能を取り上げます。セキュリティ、パフォーマンス、開発者エクスペリエンスを向上させる最先端の機能を活用できます。

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 の再読み込み時に、ループバックにバインドされている場合でも、公開されたコンテナポートにローカルネットワークからアクセスできる問題を修正しました。

影響: localhost からのみアクセスできることを想定して 127.0.0.1 にバインドしているコンテナにとって、重大な修正です。

5. 非推奨化

Raspberry Pi OS 32-bit(armhf):

  • Docker Engine 28 は armhf をサポートする最後のメジャーバージョンです
  • Engine 29 以降、armhf 向けの新しいパッケージは提供されません
  • 64 ビット OS に移行するか、Engine 28.x LTS を使用してください

Docker Desktop 4.47 の機能(2025 年 10 月)

1. MCP カタログとの統合

概要: 100 種類以上の検証済みコンテナ化ツールを掲載した Model Context Protocol(MCP)サーバーカタログです。

主な機能:

  • MCP サーバーの検索と検出
  • MCP ツールをワンクリックでデプロイ
  • Docker AI および Model Runner との統合
  • AI エージェントツールの一元管理

アクセス方法:

ユースケース:

  • AI エージェントツールの検出
  • ワークフローの自動化
  • 開発環境のセットアップ
  • CI/CD ツールとの統合
2. Model Runner の機能強化

新機能:

  • モデル管理 UI の改善
  • 推論 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 で Enhanced Container Isolation の Docker Socket コマンド制限が機能しない問題を修正しました。

CVE-2025-9074(v4.46): マウントされたソケットがなくても、悪意のあるコンテナから脱出して Docker Engine にアクセスできる問題を修正しました。

Docker Desktop 4.38-4.45 の機能

1. Docker AI Assistant(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"

ローカルモデルランナー:

  • AI モデルをマシン上で直接実行します(llama.cpp)
  • クラウド API に依存しません
  • プライバシーを保護します(データはローカルに保持されます)
  • パフォーマンス向上のため GPU アクセラレーションに対応します
  • オフラインで動作します
2. Enhanced Container Isolation(ECI)

概要: Docker ソケットへのアクセスとコンテナ脱出の手段を制限する、追加のセキュリティレイヤーです。

セキュリティ上のメリット:

  • 不正な Docker ソケットへのアクセスを防止します
  • デフォルトでコンテナの機能を制限します
  • 一般的な脱出手法をブロックします
  • より厳格なリソース境界を適用します
  • コンテナの操作を監査します

有効にする方法:

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

ユースケース:

  • マルチテナント環境
  • セキュリティが重要なアプリケーション
  • コンプライアンス要件(PCI-DSS、HIPAA)
  • ゼロトラストアーキテクチャ
  • 信頼できないコードを扱う開発環境

互換性:

  • Docker ソケットへのアクセスが必要なコンテナが動作しなくなる場合があります
  • 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)

ユースケース:

  • ノード間のポッドスケジューリングをテストする
  • アフィニティ/アンチアフィニティのルールを検証する
  • ネットワークポリシーをテストする
  • ノード障害をシミュレートする
  • 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 を使用した Develop Watch:

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

2. Volume Type: 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 No-Env-Resolution:

# 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 を使用した Run:

# 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. --chown を指定した ADD --unpack:

# 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 を参照してください。

コメント