content/manuals/enterprise/security/hardened-desktop/enhanced-container-isolation/limitations.md
{{< summary-bar feature_name="Hardened Docker Desktop" >}}
Enhanced Container Isolation has some platform-specific limitations and feature constraints. Understanding these limitations helps you plan your security strategy and set appropriate expectations.
[!NOTE]
Docker Desktop requires WSL 2 version 2.1.5 or later. Check your version with
wsl --versionand update withwsl --updateif needed.
Enhanced Container Isolation provides different security levels depending on your Windows backend configuration.
The following table compares ECI on WSL 2 and ECI on Hyper-V:
| Security feature | ECI on WSL | ECI on Hyper-V | Comment |
|---|---|---|---|
| Strongly secure containers | Yes | Yes | Makes it harder for malicious container workloads to breach the Docker Desktop Linux VM and host. |
| Docker Desktop Linux VM protected from user access | No | Yes | On WSL, users can access Docker Engine directly or bypass Docker Desktop security settings. |
| Docker Desktop Linux VM has a dedicated kernel | No | Yes | On WSL, Docker Desktop can't guarantee the integrity of kernel level configs. |
WSL 2 security gaps include:
wsl -d docker-desktop. This gives users root access to modify Docker Engine settings and bypass
Settings Management configurations.Use Hyper-V backend for maximum security. WSL 2 offers better performance and resource utilization, but provides reduced security isolation.
ECI only works with Linux containers (Docker Desktop's default mode). Native Windows containers mode isn't supported.
Docker Build protection depends on the driver and Docker Desktop version:
| Build drive | Protection | Version requirements |
|---|---|---|
docker (default) | Protected | Docker Desktop 4.30 and later (except WSL 2) |
docker (legacy) | Not protected | Docker Desktop versions before 4.30 |
docker-container | Always protected | All Docker Desktop versions |
The following Docker Build features don't work with ECI:
docker build --network=hostnetwork.host, security.insecureUse docker-container build driver for builds requiring these features:
$ docker buildx create --driver docker-container --use
$ docker buildx build --network=host .
The integrated Kubernetes feature doesn't benefit from ECI protection. Malicious or privileged pods can compromise the Docker Desktop VM and bypass security controls.
Use Kubernetes in Docker (KinD) for ECI-protected Kubernetes:
$ kind create cluster
With ECI turned on, each Kubernetes node runs in an ECI-protected container, providing stronger isolation from the Docker Desktop VM.
These container types currently don't benefit from ECI protection:
Only use extensions from trusted sources and avoid Docker Debug in security-sensitive environments.
Command lists apply to all containers allowed to mount the Docker socket. You can't configure different command restrictions per container image.
You can't allow arbitrary local-only images (images not in a registry) to mount the Docker socket, unless they're:
allowDerivedImages: true)"*", Docker Desktop 4.36 and later)These Docker commands aren't yet supported in command list restrictions:
compose: Docker Compose commandsdev: Development environment commandsextension: Docker Extensions managementfeedback: Docker feedback submissioninit: Docker initialization commandsmanifest: Image manifest managementplugin: Plugin managementsbom: Software Bill of Materialsscout: Docker Scout commandstrust: Image trust managementEnabling allowDerivedImages: true adds approximately 1 second to container startup time for image validation.
When allowed images are updated in registries, local containers may be unexpectedly blocked until you refresh the local image:
$ docker image rm <image>
$ docker pull <image>
ECI features have been introduced across different Docker Desktop versions:
"*") and improved derived images handlingallowDerivedImages)For the latest feature availability, use the most recent Docker Desktop version.
Most containers run identically with and without ECI. However, some advanced workloads may behave differently:
Test advanced workloads with ECI in development environments before production deployment to ensure compatibility.
Containers using the Sysbox runtime (with ECI) may have subtle differences compared to standard OCI runc runtime in production. These differences typically only affect privileged or system-level operations.