Docker Engine 24.0 release notes
This page describes the latest changes, additions, known issues, and fixes for Docker Engine version 24.0.
For more information about:
- Deprecated and removed features, see Deprecated Engine Features.
- Changes to the Engine API, see Engine API version history.
24.0.9
2024-01-31For a full list of pull requests and changes in this release, refer to the relevant GitHub milestones:
Security
This release contains security fixes for the following CVEs affecting Docker Engine and its components.
CVE | Component | Fix version | Severity |
---|---|---|---|
CVE-2024-21626 | runc | 1.1.12 | High, CVSS 8.6 |
CVE-2024-24557 | Docker Engine | 24.0.9 | Medium, CVSS 6.9 |
Important
Note that this release of Docker Engine doesn't include fixes for the following known vulnerabilities in BuildKit:
To address these vulnerabilities, upgrade to Docker Engine v25.0.2.
For more information about the security issues addressed in this release, and the unaddressed vulnerabilities in BuildKit, refer to the blog post.
For details about each vulnerability, see the relevant security advisory:
Packaging updates
- Upgrade runc to v1.1.12. moby/moby#47269
- Upgrade containerd to v1.7.13 (static binaries only). moby/moby#47280
24.0.8
2024-01-25For a full list of pull requests and changes in this release, refer to the relevant GitHub milestones:
Bug fixes and enhancements
- Live restore: Containers with auto remove (
docker run --rm
) are no longer forcibly removed on engine restart. moby/moby#46857
Packaging updates
- Upgrade Go to
go1.20.13
. moby/moby#47054, docker/cli#4826, docker/docker-ce-packaging#975 - Upgrade containerd (static binaries only) to v1.7.12 moby/moby#47096
- Upgrade runc to v1.1.11. moby/moby#47010
24.0.7
2023-10-27For a full list of pull requests and changes in this release, refer to the relevant GitHub milestones:
Bug fixes and enhancements
- Write overlay2 layer metadata atomically. moby/moby#46703
- Fix "Rootful-in-Rootless" Docker-in-Docker on systemd version 250 and later. moby/moby#46626
- Fix
dockerd-rootless-setuptools.sh
when username contains a backslash. moby/moby#46407 - Fix a bug that would prevent network sandboxes to be fully deleted when stopping containers with no network attachments and when
dockerd --bridge=none
is used. moby/moby#46702 - Fix a bug where cancelling an API request could interrupt container restart. moby/moby#46697
- Fix an issue where containers would fail to start when providing
--ip-range
with a range larger than the subnet. docker/for-mac#6870 - Fix data corruption with zstd output. moby/moby#46709
- Fix the conditions under which the container's MAC address is applied. moby/moby#46478
- Improve the performance of the stats collector. moby/moby#46448
- Fix an issue with source policy rules ending up in the wrong order. moby/moby#46441
Packaging updates
- Add support for Fedora 39 and Ubuntu 23.10. docker/docker-ce-packaging#940, docker/docker-ce-packaging#955
- Fix
docker.socket
not getting disabled when uninstalling thedocker-ce
RPM package. docker/docker-ce-packaging#852 - Upgrade Go to
go1.20.10
. docker/docker-ce-packaging#951 - Upgrade containerd to
v1.7.6
(static binaries only). moby/moby#46103 - Upgrade the
containerd.io
package tov1.6.24
.
Security
Deny containers access to
/sys/devices/virtual/powercap
by default. This change hardens against CVE-2020-8694, CVE-2020-8695, and CVE-2020-12912, and an attack known as the PLATYPUS attack.
24.0.6
2023-09-05For a full list of pull requests and changes in this release, refer to the relevant GitHub milestones:
Bug fixes and enhancements
- containerd storage backend: Fix
docker ps
failing when a container image is no longer present in the content store. moby/moby#46095 - containerd storage backend: Fix
docker ps -s -a
anddocker container prune
failing when a container image config is no longer present in the content store. moby/moby#46097 - containerd storage backend: Fix
docker inspect
failing when a container image config is no longer (or was never) present in the content store. moby/moby#46244 - containerd storage backend: Fix diff and export with the
overlayfs
snapshotter by using reference-counted rootfs mounts. moby/moby#46266 - containerd storage backend: Fix a misleading error message when the image platforms available locally do not match the desired platform. moby/moby#46300
- containerd storage backend: Fix the
FROM scratch
Dockerfile instruction with the classic builder. moby/moby#46302 - containerd storage backend: Fix
mismatched image rootfs and manifest layers
errors with the classic builder. moby/moby#46310 - Warn when pulling Docker Image Format v1, and Docker Image manifest version 2, schema 1 images from all registries. moby/moby#46290
- Fix live-restore of volumes with custom volume options. moby/moby#46366
- Fix incorrectly dropping capabilities bits when running a container as a non-root user (note: this change was already effectively present due to a regression). moby/moby#46221
- Fix network isolation iptables rules preventing IPv6 Neighbor Solicitation packets from being exchanged between containers. moby/moby#46214
- Fix
dockerd.exe --register-service
not working when the binary is in the current directory on Windows. moby/moby#46215 - Add a hint suggesting the use of a PAT to
docker login
against Docker Hub. docker/cli#4500 - Improve shell startup time for users of Bash completion for the CLI. docker/cli#4517
- Improve the speed of some commands by skipping
GET /_ping
when possible. docker/cli#4508 - Fix credential scopes when using a PAT to
docker manifest inspect
an image on Docker Hub. docker/cli#4512 - Fix
docker events
not supporting--format=json
. docker/cli#4544
Packaging updates
- Upgrade Go to
go1.20.7
. moby/moby#46140, docker/cli#4476, docker/docker-ce-packaging#932 - Upgrade containerd to
v1.7.3
(static binaries only). moby/moby#46103 - Upgrade Compose to
v2.21.0
. docker/docker-ce-packaging#936
24.0.5
2023-07-24For a full list of pull requests and changes in this release, refer to the relevant GitHub milestones:
Bug fixes and enhancements
- The Go client now avoids using UNIX socket paths in the HTTP
Host:
header, in order to be compatible with changes introduced ingo1.20.6
. moby/moby#45962, moby/moby#45990 - containerd storage backend: Fix
Variant
not being included indocker image inspect
andGET /images/{name}/json
. moby/moby#46025 - containerd storage backend: Prevent potential garbage collection of content during image export. moby/moby#46021
- containerd storage backend: Prevent duplicate digest entries in
RepoDigests
. moby/moby#46014 - containerd storage backend: Fix operations taking place against the incorrect tag when working with an image referenced by tag and digest. moby/moby#46013
- containerd storage backend: Fix a panic caused by
EXPOSE
when building containers with the legacy builder. moby/moby#45921 - Fix a regression causing unintuitive errors to be returned when attempting to create an
overlay
network on a non-Swarm node. moby/moby#45974 - Properly report errors parsing volume specifications from the command line. docker/cli#4423
- Fix a panic caused when
auths: null
is found in the CLI config file. docker/cli#4450
Packaging updates
- Use init scripts as provided by in moby/moby
contrib/init
. docker/docker-ce-packaging#914, docker/docker-ce-packaging#926 - Drop Upstart from
contrib/init
. moby/moby#46044 - Upgrade Go to
go1.20.6
. docker/cli#4428, moby/moby#45970, docker/docker-ce-packaging#921 - Upgrade Compose to
v2.20.2
. docker/docker-ce-packaging#924 - Upgrade buildx to
v0.11.2
. docker/docker-ce-packaging#922
24.0.4
2023-07-07For a full list of pull requests and changes in this release, refer to the relevant GitHub milestones:
Bug fixes and enhancements
- Fix a regression introduced during 24.0.3 that causes a panic during live-restore of containers with bind mounts. moby/moby#45903
24.0.3
2023-07-06For a full list of pull requests and changes in this release, refer to the relevant GitHub milestones:
Bug fixes and enhancements
- containerd image store: Fix an issue where multi-platform images that did not include a manifest for the default platform could not be interacted with. moby/moby#45849
- containerd image store: Fix specious attempts to cache
FROM scratch
in container builds. moby/moby#45822 - containerd image store: Fix
docker cp
with snapshotters that cannot mount the same content multiple times. moby/moby#45780, moby/moby#45786 - containerd image store: Fix builds with
type=image
not being correctly unpacked/stored. moby/moby#45692 - containerd image store: Fix incorrectly attempting to unpack pseudo-images (including attestations) in
docker load
. moby/moby#45688 - containerd image store: Correctly set the user agent, and include additional information like the snapshotter when interacting with registries. moby/moby#45671, moby/moby#45684
- containerd image store: Fix a failure to unpack already-pulled content after switching between snapshotters. moby/moby#45678
- containerd image store: Fix images that have been re-tagged or with all tags removed being pruned while still in use. moby/moby#45857
- Fix a Swarm CSI issue where the Topology field was not propagated into NodeCSIInfo. moby/moby#45810
- Fix failures to add new Swarm managers caused by a very large raft log. moby/moby#45703, moby/swarmkit#3122, moby/swarmkit#3128
name_to_handle_at(2)
is now always allowed in the default seccomp profile. moby/moby#45833- Fix an issue that prevented encrypted Swarm overlay networks from working on ports other than the default (4789). moby/moby#45637
- Fix a failure to restore mount reference-counts during live-restore. moby/moby#45824
- Fix various networking-related failures during live-restore. moby/moby#45658, moby/moby#45659
- Fix running containers restoring with a zero (successful) exit status when the daemon is unexpectedly terminated. moby/moby#45801
- Fix a potential panic while executing healthcheck probes. moby/moby#45798
- Fix a panic caused by a race condition in container exec start. moby/moby#45794
- Fix an exception caused by attaching a terminal to an exec with a non-existent command. moby/moby#45643
- Fix
host-gateway
with BuildKit by passing the IP as a label (also requires docker/buildx#1894). moby/moby#45790 - Fix an issue where
POST /containers/{id}/stop
would forcefully terminate the container when the request was canceled, instead of waiting until the specified timeout for a 'graceful' stop. moby/moby#45774 - Fix an issue where
docker cp -a
from the root (/
) directory would fail. moby/moby#45748 - Improve compatibility with non-runc container runtimes by more correctly setting resource constraint parameters in the OCI config. moby/moby#45746
- Fix an issue caused by overlapping subuid/subgid ranges in certain configurations (e.g. LDAP) in rootless mode. moby/moby#45747, rootless-containers/rootlesskit#369
- Greatly reduce CPU and memory usage while populating the Debug section of
GET /info
. moby/moby#45856 - Fix an issue where debug information was not correctly printed during
docker info
when only the client is in debug mode. docker/cli#4393 - Fix issues related to hung connections when connecting to hosts over a SSH connection. docker/cli#4395
Packaging updates
- Upgrade Go to
go1.20.5
. moby/moby#45745, docker/cli#4351, docker/docker-ce-packaging#904 - Upgrade Compose to
v2.19.1
. docker/docker-ce-packaging#916 - Upgrade buildx to
v0.11.1
. docker/docker-ce-packaging#918
24.0.2
2023-05-26For a full list of pull requests and changes in this release, refer to the relevant GitHub milestones:
Bug fixes and enhancements
- Fix a panic during build when referencing locally tagged images. moby/buildkit#3899, moby/moby#45582
- Fix builds potentially failing with
exit code: 4294967295
when performing many concurrent build stages. moby/moby#45620 - Fix DNS resolution on Windows ignoring
etc/hosts
(%WINDIR%\System32\Drivers\etc\hosts
), including resolution oflocalhost
. moby/moby#45562 - Apply a workaround for a containerd bug that causes concurrent
docker exec
commands to take significantly longer than expected. moby/moby#45625 - containerd image store: Fix an issue where the image
Created
field would contain an incorrect value. moby/moby#45623 - containerd image store: Adjust the output of image pull progress so that the output has the same format regardless of whether the containerd image store is enabled. moby/moby#45602
- containerd image store: Switching between the default and containerd image store now requires a daemon restart. moby/moby#45616
Packaging updates
- Upgrade Buildx to
v0.10.5
. docker/docker-ce-packaging#900
24.0.1
2023-05-19For a full list of pull requests and changes in this release, refer to the relevant GitHub milestones:
Removed
- Remove CLI completions for storage drivers removed in the 24.0 major release. docker/cli#4302
Bug fixes and enhancements
- Fix an issue where DNS query NXDOMAIN replies from external servers were forwarded to the client as SERVFAIL. moby/moby#45573
- Fix an issue where
docker pull --platform
would reportNo such image
regarding another tag pointing to the same image. moby/moby#45562 - Fix an issue where insecure registry configuration would be forgotten during config reload. moby/moby#45571
- containerd image store: Fix an issue where images which have no layers would not be listed in
docker images -a
moby/moby#45588 - API: Fix an issue where
GET /images/{id}/json
would returnnull
instead of emptyRepoTags
andRepoDigests
. moby/moby#45564 - API: Fix an issue where
POST /commit
did not accept an empty request body. moby/moby#45568
Packaging updates
- Upgrade Compose to
v2.18.1
. docker/docker-ce-packaging#896
24.0.0
2023-05-16For a full list of pull requests and changes in this release, refer to the relevant GitHub milestones:
New
- Introduce experimental support for containerd as the content store (replacing the existing storage drivers). moby/moby#43735, other moby/moby pull requests
- The
--host
CLI flag now supports a path component in assh://
host address, allowing use of an alternate socket path without configuration on the remote host. docker/cli#4073 - The
docker info
CLI command now reports a version and platform field. docker/cli#4180 - Introduce the daemon flag
--default-network-opt
to configure options for newly created networks. moby/moby#43197 - Restrict access to
AF_VSOCK
in thesocket(2)
family of syscalls in the default seccomp profile. moby/moby#44562 - Introduce support for setting OCI runtime annotations on containers. docker/cli#4156, moby/moby#45025
- Alternative runtimes can now be configured in
daemon.json
, enabling runtime names to be aliased and options to be passed. moby/moby#45032 - The
docker-init
binary will now be discovered in FHS-compliant libexec directories, in addition to thePATH
. moby/moby#45198 - API: Surface the daemon-level
--no-new-privileges
inGET /info
. moby/moby#45320
Removed
docker info
no longer reportsIndexServiceAddress
. docker/cli#4204- libnetwork: Remove fallback code for obsolete kernel versions. moby/moby#44684, moby/moby#44802
- libnetwork: Remove unused code related to classic Swarm. moby/moby#44965
- libnetwork: Remove usage of the
xt_u32
kernel module from encrypted Swarm overlay networks. moby/moby#45281 - Remove support for BuildKit's deprecated
buildinfo
in favor of standard provenance attestations. moby/moby#45097 - Remove the deprecated AUFS and legacy
overlay
storage drivers. moby/moby#45342, moby/moby#45359 - Remove the deprecated
overlay2.override_kernel_check
storage driver option. moby/moby#45368 - Remove workarounds for obsolete versions of
apparmor_parser
from the AppArmor profiles. moby/moby#45500 - API:
GET /images/json
no longer represents empty RepoTags and RepoDigests as<none>:<none>
/<none>@<none>
. Empty arrays are returned instead on API >= 1.43. moby/moby#45068
Deprecated
- Deprecate the
--oom-score-adjust
daemon option. moby/moby#45315 - API: Deprecate the
VirtualSize
field inGET /images/json
andGET /images/{id}/json
. moby/moby#45346
Bug fixes and enhancements
- The
docker stack
command no longer validates thebuild
section of Compose files. docker/cli#4214 - Fix lingering healthcheck processes after the timeout is reached. moby/moby#43739
- Reduce the overhead of container startup when using the
overlay2
storage driver. moby/moby#44285 - API: Handle multiple
before=
andsince=
filters inGET /images
. moby/moby#44503 - Fix numerous bugs in the embedded DNS resolver implementation used by user-defined networks. moby/moby#44664
- Add
execDuration
field to the map of event attributes. moby/moby#45494 - Swarm-level networks can now be created with the Windows
internal
,l2bridge
, andnat
drivers. moby/swarmkit#3121, moby/moby#45291
Packaging updates
- Update Go to
1.20.4
. docker/cli#4253, moby/moby#45456, docker/docker-ce-packaging#888 - Update
containerd
tov1.7.1
. moby/moby#45537 - Update
buildkit
tov0.11.6
. moby/moby#45367