diff --git a/docs/reference/commandline/container_run.md b/docs/reference/commandline/container_run.md
index de40a83f3354..73e8755d37b1 100644
--- a/docs/reference/commandline/container_run.md
+++ b/docs/reference/commandline/container_run.md
@@ -858,6 +858,38 @@ PS C:\> docker run --device=class/86E0D1E0-8089-11D0-9CE4-08003E301F73 mcr.micro
> The `--device` option is only supported on process-isolated Windows containers,
> and produces an error if the container isolation is `hyperv`.
+#### CDI devices
+
+> **Note**
+>
+> This is experimental feature and as such doesn't represent a stable API.
+
+Container Device Interface (CDI) is a
+[standardized](https://github.com/cncf-tags/container-device-interface/blob/main/SPEC.md)
+mechanism for container runtimes to create containers which are able to
+interact with third party devices.
+
+With CDI, device configurations are defined using a JSON file. In addition to
+enabling the container to interact with the device node, it also lets you
+specify additional configuration for the device, such as kernel modules, host
+libraries, and environment variables.
+
+You can reference a CDI device with the `--device` flag using the
+fully-qualified name of the device, as shown in the following example:
+
+```console
+$ docker run --device=vendor.com/class=device-name --rm -it ubuntu
+```
+
+This starts an `ubuntu` container with access to the specified CDI device,
+`vendor.com/class=device-name`, assuming that:
+
+- A valid CDI specification (JSON file) for the requested device is available
+ on the system running the daemon, in one of the configured CDI specification
+ directories.
+- The CDI feature has been enabled on the daemon side, see [Enable CDI
+ devices](dockerd.md#enable-cdi-devices).
+
### Attach to STDIN/STDOUT/STDERR (-a, --attach)
The `--attach` (or `-a`) flag tells `docker run` to bind to the container's
@@ -1016,6 +1048,11 @@ the required device when it is added.
The `--gpus` flag allows you to access NVIDIA GPU resources. First you need to
install the [nvidia-container-runtime](https://nvidia.github.io/nvidia-container-runtime/).
+> **Note**
+>
+> You can also use specify a GPU as a CDI device with the `--device` flag, see
+> [CDI devices](#cdi-devices).
+
Read [Specify a container's resources](https://docs.docker.com/config/containers/resource_constraints/)
for more information.
diff --git a/docs/reference/commandline/dockerd.md b/docs/reference/commandline/dockerd.md
index d4e59ac1f051..9e9fd332f328 100644
--- a/docs/reference/commandline/dockerd.md
+++ b/docs/reference/commandline/dockerd.md
@@ -29,6 +29,7 @@ Options:
--authorization-plugin list Authorization plugins to load
--bip string Specify network bridge IP
-b, --bridge string Attach containers to a network bridge
+ --cdi-spec-dir list CDI specification directories to use
--cgroup-parent string Set parent cgroup for all containers
--config-file string Daemon configuration file (default "/etc/docker/daemon.json")
--containerd string containerd grpc address
@@ -854,6 +855,44 @@ $ docker run -it --add-host host.docker.internal:host-gateway \
PING host.docker.internal (192.0.2.0): 56 data bytes
```
+### Enable CDI devices
+
+> **Note**
+>
+> This is experimental feature and as such doesn't represent a stable API.
+>
+> This feature isn't enabled by default. To this feature, set `features.cdi` to
+> `true` in the `daemon.json` configuration file.
+
+Container Device Interface (CDI) is a
+[standardized](https://github.com/cncf-tags/container-device-interface/blob/main/SPEC.md)
+mechanism for container runtimes to create containers which are able to
+interact with third party devices.
+
+The Docker daemon supports running containers with CDI devices if the requested
+device specifications are available on the filesystem of the daemon.
+
+The default specification directors are:
+
+- `/etc/cdi/` for static CDI Specs
+- `/var/run/cdi` for generated CDI Specs
+
+Alternatively, you can set custom locations for CDI specifications using the
+`cdi-spec-dirs` option in the `daemon.json` configuration file, or the
+`--cdi-spec-dir` flag for the `dockerd` CLI.
+
+```json
+{
+ "features": {
+ "cdi": true
+ },
+ "cdi-spec-dirs": ["/etc/cdi/", "/var/run/cdi"]
+}
+```
+
+When CDI is enabled for a daemon, you can view the configured CDI specification
+directories using the `docker info` command.
+
### Miscellaneous options
IP masquerading uses address translation to allow containers without a public
diff --git a/docs/reference/commandline/system_info.md b/docs/reference/commandline/system_info.md
index 48fb3597d513..2e3d6b50d0e9 100644
--- a/docs/reference/commandline/system_info.md
+++ b/docs/reference/commandline/system_info.md
@@ -47,17 +47,17 @@ information about the `overlay2` storage driver is shown:
```console
$ docker info
-Client: Docker Engine - Community
- Version: 24.0.0
+Client:
+ Version: 25.0.0
Context: default
Debug Mode: false
Plugins:
buildx: Docker Buildx (Docker Inc.)
- Version: v0.10.4
- Path: /usr/libexec/docker/cli-plugins/docker-buildx
+ Version: v0.12.1
+ Path: /usr/local/libexec/docker/cli-plugins/docker-buildx
compose: Docker Compose (Docker Inc.)
- Version: v2.17.2
- Path: /usr/libexec/docker/cli-plugins/docker-compose
+ Version: v2.24.0
+ Path: /usr/local/libexec/docker/cli-plugins/docker-compose
Server:
Containers: 14
@@ -65,15 +65,11 @@ Server:
Paused: 1
Stopped: 10
Images: 52
- Server Version: 23.0.3
- Storage Driver: overlay2
- Backing Filesystem: extfs
- Supports d_type: true
- Using metacopy: false
- Native Overlay Diff: true
- userxattr: false
+ Server Version: 25.0.0
+ Storage Driver: overlayfs
+ driver-type: io.containerd.snapshotter.v1
Logging Driver: json-file
- Cgroup Driver: systemd
+ Cgroup Driver: cgroupfs
Cgroup Version: 2
Plugins:
Volume: local
@@ -83,33 +79,31 @@ Server:
/etc/cdi
/var/run/cdi
Swarm: inactive
- Runtimes: io.containerd.runc.v2 runc
+ Runtimes: runc io.containerd.runc.v2
Default Runtime: runc
Init Binary: docker-init
- containerd version: 2806fc1057397dbaeefbea0e4e17bddfbd388f38
- runc version: v1.1.5-0-gf19387a
+ containerd version: 71909c1814c544ac47ab91d2e8b84718e517bb99
+ runc version: v1.1.11-0-g4bccb38
init version: de40ad0
Security Options:
- apparmor
seccomp
Profile: builtin
cgroupns
- Kernel Version: 5.15.0-25-generic
- Operating System: Ubuntu 22.04 LTS
+ Kernel Version: 6.5.11-linuxkit
+ Operating System: Alpine Linux v3.19
OSType: linux
- Architecture: x86_64
- CPUs: 1
- Total Memory: 991.7 MiB
- Name: ip-172-30-0-91.ec2.internal
- ID: 4cee4408-10d2-4e17-891c-a41736ac4536
+ Architecture: aarch64
+ CPUs: 10
+ Total Memory: 7.663GiB
+ Name: 4a7ed206a70d
+ ID: c20f7230-59a2-4824-a2f4-fda71c982ee6
Docker Root Dir: /var/lib/docker
Debug Mode: false
- Username: gordontheturtle
Experimental: false
Insecure Registries:
- myinsecurehost:5000
127.0.0.0/8
Live Restore Enabled: false
+ Product License: Community Engine
```
### Format the output (--format)