🚨 CRITICAL GUIDELINES
Windows File Path Requirements
MANDATORY: Always Use Backslashes on Windows for File Paths
When using Edit or Write tools on Windows, you MUST use backslashes (
) in file paths, NOT forward slashes (/
).
Examples:
-
❌ WRONG: D:/repos/project/file.tsx
-
✅ CORRECT: D:\repos\project\file.tsx
This applies to:
-
Edit tool file_path parameter
-
Write tool file_path parameter
-
All file operations on Windows systems
Documentation Guidelines
NEVER create new documentation files unless explicitly requested by the user.
-
Priority: Update existing README.md files rather than creating new documentation
-
Repository cleanliness: Keep repository root clean - only README.md unless user requests otherwise
-
Style: Documentation should be concise, direct, and professional - avoid AI-generated tone
-
User preference: Only create additional .md files when user specifically asks for documentation
Docker 2025 Features
This skill covers the latest Docker features introduced in 2025, ensuring you leverage cutting-edge capabilities for security, performance, and developer experience.
Docker Engine 28 Features (2025)
- Image Type Mounts
What it is: Mount an image directory structure directly inside a container without extracting to a volume.
Key capabilities:
-
Mount image layers as read-only filesystems
-
Share common data between containers without duplication
-
Faster startup for data-heavy containers
-
Reduced disk space usage
How to use:
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
Use cases:
-
Read-only configuration distribution
-
Shared ML model weights across containers
-
Static asset serving
-
Immutable data sets for testing
- Versioned Debug Endpoints
What it is: Debug endpoints now accessible through standard versioned API paths.
Previously: Only available at root paths like /debug/vars
Now: Also accessible at /v1.48/debug/vars , /v1.48/debug/pprof/*
Available endpoints:
-
/v1.48/debug/vars
-
Runtime variables
-
/v1.48/debug/pprof/
-
Profiling index
-
/v1.48/debug/pprof/cmdline
-
Command line
-
/v1.48/debug/pprof/profile
-
CPU profile
-
/v1.48/debug/pprof/trace
-
Execution trace
-
/v1.48/debug/pprof/goroutine
-
Goroutine stacks
How to use:
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
- Component Updates
Latest versions in Engine 28.3.3:
-
Buildx v0.26.1 - Enhanced build performance
-
Compose v2.40.3 - Latest compose features
-
BuildKit v0.25.1 - Security improvements
-
Go runtime 1.24.8 - Performance optimizations
- Security Fixes
CVE-2025-54388: Fixed firewalld reload issue where published container ports could be accessed from local network even when bound to loopback.
Impact: Critical for containers binding to 127.0.0.1 expecting localhost-only access.
- Deprecations
Raspberry Pi OS 32-bit (armhf):
-
Docker Engine 28 is the last major version supporting armhf
-
Starting with Engine 29, no new armhf packages
-
Migrate to 64-bit OS or use Engine 28.x LTS
Docker Desktop 4.47 Features (October 2025)
- MCP Catalog Integration
What it is: Model Context Protocol (MCP) server catalog with 100+ verified, containerized tools.
Key capabilities:
-
Discover and search MCP servers
-
One-click deployment of MCP tools
-
Integration with Docker AI and Model Runner
-
Centralized management of AI agent tools
How to access:
-
Docker Hub MCP Catalog
-
Docker Desktop MCP Toolkit
Use cases:
-
AI agent tool discovery
-
Workflow automation
-
Development environment setup
-
CI/CD tool integration
- Model Runner Enhancements
What's new:
-
Improved UI for model management
-
Enhanced inference APIs
-
Better inference engine performance
-
Model card inspection in Docker Desktop
-
docker model requests command for monitoring
How to use:
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)
- Silent Component Updates
What it is: Docker Desktop automatically updates internal components without requiring full application restart.
Benefits:
-
Faster security patches
-
Less disruption to workflow
-
Automatic Compose, BuildKit, Containerd updates
-
Background update delivery
Configuration:
-
Enabled by default
-
Can be disabled in Settings > General
-
Notifications for major updates only
- CVE Fixes
CVE-2025-10657 (v4.47): Fixed Enhanced Container Isolation Docker Socket command restrictions not working in 4.46.0.
CVE-2025-9074 (v4.46): Fixed malicious container escape allowing Docker Engine access without mounted socket.
Docker Desktop 4.38-4.45 Features
- Docker AI Assistant (Project Gordon)
What it is: AI-powered assistant integrated into Docker Desktop and CLI for intelligent container development.
Key capabilities:
-
Natural language command interface
-
Context-aware troubleshooting
-
Automated Dockerfile optimization
-
Real-time best practice recommendations
-
Intelligent error diagnosis
How to use:
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"
Local Model Runner:
-
Runs AI models directly on your machine (llama.cpp)
-
No cloud API dependencies
-
Privacy-preserving (data stays local)
-
GPU acceleration for performance
-
Works offline
- Enhanced Container Isolation (ECI)
What it is: Additional security layer that restricts Docker socket access and container escape vectors.
Security benefits:
-
Prevents unauthorized Docker socket access
-
Restricts container capabilities by default
-
Blocks common escape techniques
-
Enforces stricter resource boundaries
-
Audits container operations
How to enable:
Docker Desktop Settings > Security > Enhanced Container Isolation
Or via CLI:
docker desktop settings set enhancedContainerIsolation=true
Use cases:
-
Multi-tenant environments
-
Security-critical applications
-
Compliance requirements (PCI-DSS, HIPAA)
-
Zero-trust architectures
-
Development environments with untrusted code
Compatibility:
-
May break containers requiring Docker socket access
-
Requires Docker Desktop 4.38+
-
Supported on Windows (WSL2), macOS, Linux Desktop
- Model Runner
What it is: Built-in AI model execution engine allowing developers to run large language models locally.
Features:
-
Run AI models without cloud services
-
Optimal GPU acceleration
-
Privacy-preserving inference
-
Multiple model format support
-
Integration with Docker AI
How to use:
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
Benefits:
-
No API costs
-
Complete data privacy
-
Offline availability
-
Faster inference (local GPU)
-
Integration with development workflow
- Multi-Node Kubernetes Testing
What it is: Test Kubernetes deployments with multi-node clusters directly in Docker Desktop.
Previously: Single-node only Now: 2-5 node clusters for realistic testing
How to enable:
Docker Desktop Settings > Kubernetes > Enable multi-node
Specify node count (2-5)
Use cases:
-
Test pod scheduling across nodes
-
Validate affinity/anti-affinity rules
-
Test network policies
-
Simulate node failures
-
Validate StatefulSets and DaemonSets
- Bake (General Availability)
What it is: High-level build orchestration tool for complex multi-target builds.
Previously: Experimental Now: Generally available and production-ready
Features:
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 Engine Updates
Performance Improvements
- Faster Container Startup:
-
20-30% faster cold starts
-
Improved layer extraction
-
Optimized network initialization
- Better Resource Management:
-
More accurate memory accounting
-
Improved CPU throttling
-
Better cgroup v2 support
- Storage Driver Enhancements:
-
overlay2 performance improvements
-
Better disk space management
-
Faster image pulls
Security Updates
- Enhanced Seccomp Profiles:
{ "defaultAction": "SCMP_ACT_ERRNO", "architectures": ["SCMP_ARCH_X86_64", "SCMP_ARCH_AARCH64"], "syscalls": [ { "names": ["read", "write", "exit"], "action": "SCMP_ACT_ALLOW" } ] }
- Improved AppArmor Integration:
-
Better Docker profile generation
-
Reduced false positives
-
Enhanced logging
- User Namespace Improvements:
-
Easier configuration
-
Better compatibility
-
Performance optimizations
Docker Compose v2.40.3+ Features (2025)
Compose Bridge (Convert to Kubernetes)
What it is: Convert local compose.yaml files to Kubernetes manifests in a single command.
Key capabilities:
-
Automatic conversion of Compose services to Kubernetes Deployments
-
Service-to-Service mapping
-
Volume conversion to PersistentVolumeClaims
-
ConfigMap and Secret generation
-
Ingress configuration
How to use:
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
Example conversion:
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'
Use cases:
-
Local development to Kubernetes migration
-
Testing Kubernetes deployments locally
-
CI/CD pipeline conversion
-
Multi-environment deployment strategies
Breaking Changes
- Version Field Obsolete:
OLD (deprecated):
version: '3.8' services: app: image: nginx
NEW (2025):
services: app: image: nginx
The version field is now ignored and can be omitted.
New Features
- Develop Watch with initial_sync:
services: app: build: . develop: watch: - action: sync path: ./src target: /app/src initial_sync: full # NEW: Sync all files on start
- Volume Type: Image:
services: app: volumes: - type: image source: mydata:latest target: /data read_only: true
- Build Print:
Debug complex build configurations
docker compose build --print > build-config.json
- Config No-Env-Resolution:
View raw config without environment variable substitution
docker compose config --no-env-resolution
- Watch with Prune:
Automatically prune unused resources during watch
docker compose watch --prune
- Run with Quiet:
Reduce output noise
docker compose run --quiet app npm test
BuildKit Updates (2025)
New Features
- Git SHA-256 Support:
Use SHA-256 based repositories
ADD https://github.com/user/repo#sha256:abc123... /src
- Enhanced COPY/ADD --exclude:
Now generally available (was labs-only)
COPY --exclude=.test.js --exclude=.md . /app
- ADD --unpack with --chown:
Extract and set ownership in one step
ADD --unpack=true --chown=appuser:appgroup archive.tar.gz /app
- Git Query Parameters:
Fine-grained Git clone control
ADD https://github.com/user/repo.git?depth=1&branch=main /src
- Image Checksum Verification:
Verify image integrity
FROM alpine:3.19@sha256:abc123...
BuildKit verifies checksum automatically
Security Enhancements
- Improved Frontend Verification:
Always use official Docker frontends
syntax=docker/dockerfile:1
Pin with digest for maximum security
syntax=docker/dockerfile:1@sha256:ac85f380a63b13dfcefa89046420e1781752bab202122f8f50032edf31be0021
- Remote Cache Improvements:
-
Fixed concurrency issues
-
Better loop handling
-
Enhanced security
Best Practices for 2025 Features
Using Docker AI Effectively
DO:
-
Provide specific context in queries
-
Verify AI-generated configurations
-
Combine with traditional security tools
-
Use for learning and exploration
DON'T:
-
Trust AI blindly for security-critical apps
-
Skip manual code review
-
Ignore security scan results
-
Use in air-gapped environments without Model Runner
Enhanced Container Isolation
DO:
-
Enable for security-sensitive workloads
-
Test containers for compatibility first
-
Document socket access requirements
-
Use with least privilege principles
DON'T:
-
Enable without testing existing containers
-
Disable without understanding risks
-
Grant socket access unnecessarily
-
Ignore audit logs
Modern Compose Files
DO:
-
Remove version field from new compose files
-
Use new features (volume type: image, watch improvements)
-
Leverage --print for debugging
-
Adopt --quiet for cleaner CI/CD output
DON'T:
-
Keep version field (it's ignored anyway)
-
Rely on deprecated syntax
-
Skip testing with Compose v2.40+
-
Use outdated documentation
Migration Guide
Updating to Docker Desktop 4.38+
- Backup existing configurations:
Export current settings
docker context export desktop-linux > backup.tar
- Update Docker Desktop:
-
Download latest from docker.com
-
Run installer
-
Restart machine if required
- Enable new features:
Enable AI Assistant (beta)
docker desktop settings set enableAI=true
Enable Enhanced Container Isolation
docker desktop settings set enhancedContainerIsolation=true
- Test existing containers:
Verify containers work with ECI
docker compose up -d docker compose ps docker compose logs
Updating Compose Files
Before:
version: '3.8'
services: app: image: nginx:latest volumes: - data:/data
volumes: data:
After:
services: app: image: nginx:1.26.0 # Specific version volumes: - data:/data develop: watch: - action: sync path: ./config target: /etc/nginx/conf.d initial_sync: full
volumes: data: driver: local
Troubleshooting 2025 Features
Docker AI Issues
Problem: AI Assistant not responding Solution:
Check Docker Desktop version
docker version
Ensure beta features enabled
docker desktop settings get enableAI
Restart Docker Desktop
Problem: Model Runner slow Solution:
-
Update GPU drivers
-
Increase Docker Desktop memory (Settings > Resources)
-
Close other GPU-intensive applications
-
Use smaller models for faster inference
Enhanced Container Isolation Issues
Problem: Container fails with socket permission error Solution:
Identify socket dependencies
docker inspect CONTAINER | grep -i socket
If truly needed, add socket access explicitly
(Document why in docker-compose.yml comments)
docker run -v /var/run/docker.sock:/var/run/docker.sock ...
Problem: ECI breaks CI/CD pipeline Solution:
-
Disable ECI temporarily: docker desktop settings set enhancedContainerIsolation=false
-
Review which containers need socket access
-
Refactor to eliminate socket dependencies
-
Re-enable ECI with exceptions documented
Compose v2.40 Issues
Problem: "version field is obsolete" warning Solution:
Simply remove the version field
OLD:
version: '3.8' services: ...
NEW:
services: ...
Problem: watch with initial_sync fails Solution:
Check file permissions
ls -la ./src
Ensure paths are correct
docker compose config | grep -A 5 watch
Verify sync target exists in container
docker compose exec app ls -la /app/src
Recommended Feature Adoption Timeline
Immediate (Production-Ready):
-
Bake for complex builds
-
Compose v2.40 features (remove version field)
-
Moby 25 engine (via regular Docker updates)
-
BuildKit improvements (automatic)
Testing (Beta but Stable):
-
Docker AI for development workflows
-
Model Runner for local AI testing
-
Multi-node Kubernetes for pre-production
Evaluation (Security-Critical):
-
Enhanced Container Isolation (test thoroughly)
-
ECI with existing production containers
-
Socket access elimination strategies
This skill ensures you stay current with Docker's 2025 evolution while maintaining stability, security, and production-readiness.