Docker Engine v25 — BuildKit ulimit change, OpenTelemetry, and CDI device support

DevOpsDockerLinux

Key update

Docker Engine v25 (Engine v25.0) introduces several operational changes and new features with immediate practical impact: the daemon now honors systemd's default LimitNOFILE for BuildKit-created build containers (previously set to infinity), OpenTelemetry tracing is built in, Container Device Interface (CDI) device support was added for Linux, and there are build/daemon usability additions (recursive read-only mounts, a new --log-format for dockerd, image filtering by timestamp, etc.). (docs.docker.com)

Why it matters

This release affects real-world developer workflows and CI pipelines. The systemd LimitNOFILE change can change file-descriptor availability inside BuildKit builds — causing surprising memory/behavior shifts or failures in environments that relied on the prior unlimited setting; you should validate builds and, if necessary, set a systemd drop-in or revert limits for build services. Built-in OpenTelemetry makes it straightforward to collect daemon-level traces/metrics without custom wrappers, improving observability for flaky builds and runtime debugging. CDI device support simplifies passing specialized hardware (GPUs, accelerators) into builds/containers on Linux, which matters for ML/edge workloads. Overall: test CI and local builds against v25, add monitoring for file-descriptor and memory behavior, and opt into OpenTelemetry/CDI only after confirming config and security policies. (docs.docker.com)

Source

Read Next