- Upgrade API to v1.44. [moby/moby#45468](https://github.com/moby/moby/pull/45468)
- Upgrade Compose to `2.24.1`. [docker/docker-ce-packaging#980](https://github.com/docker/docker-ce-packaging/pull/980)
- Upgrade containerd to v1.7.12 (static binaries only). [moby/moby#47070](https://github.com/moby/moby/pull/47070)
- Upgrade Go runtime to [1.21.6](https://go.dev/doc/devel/release#go1.21.minor). [moby/moby#47053](https://github.com/moby/moby/pull/47053)
- Upgrade runc to v1.1.11. [moby/moby#47007](https://github.com/moby/moby/pull/47007)
- Upgrade BuildKit to v0.12.4. [moby/moby#46882](https://github.com/moby/moby/pull/46882)
- Upgrade Buildx to v0.12.1. [docker/docker-ce-packaging#979](https://github.com/docker/docker-ce-packaging/pull/979)
### Removed
- API: Remove VirtualSize field for the `GET /images/json` and `GET /images/{id}/json` endpoints. [moby/moby#45469](https://github.com/moby/moby/pull/45469)
- Remove deprecated `devicemapper` storage driver. [moby/moby#43637](https://github.com/moby/moby/pull/43637)
- Remove deprecated orchestrator options. [docker/cli#4366](https://github.com/docker/cli/pull/4366)
- Remove support for Debian Upstart init system. [moby/moby#45548](https://github.com/moby/moby/pull/45548), [moby/moby#45551](https://github.com/moby/moby/pull/45551)
- Remove the `--oom-score-adjust` daemon option. [moby/moby#45484](https://github.com/moby/moby/pull/45484)
- Remove warning for deprecated `~/.dockercfg` file. [docker/cli#4281](https://github.com/docker/cli/pull/4281)
- Remove `logentries` logging driver. [moby/moby#46925](https://github.com/moby/moby/pull/46925)
### Deprecated
- Deprecate API versions older than 1.24. [Deprecation notice](../deprecated.md#deprecate-legacy-api-versions)
- Deprecate `IsAutomated` field and `is-automated` filter for `docker search`. [Deprecation notice](../deprecated.md#isautomated-field-and-is-automated-filter-on-docker-search)
- API: Deprecate `Container` and `ContainerConfig` properties for `/images/{id}/json` (`docker image inspect`). [moby/moby#46939](https://github.com/moby/moby/pull/46939)
### Known limitations
#### Extended attributes for tar files
In this release, the code that handles `tar` archives was changed to be more
strict and to produce an error when failing to write extended attributes
(`xattr`). The `tar` implementation for macOS generates additional extended
attributes by default when creating tar files. These attribute prefixes aren't
valid Linux `xattr` namespace prefixes, which causes an error when Docker
attempts to process these files. For example, if you try to use a tar file with
an `ADD` Dockerfile instruction, you might see an error message similar to the
following:
```text
failed to solve: lsetxattr /sftp_key.ppk: operation not supported
```
Error messages related to extended attribute validation were improved to
include more context in [v25.0.1](#2501), but the limitation in Docker being
unable to process the files remains. Tar files created with the macOS `tar`
using default arguments will produce an error when the tar file is used with
Docker.
As a workaround, if you need to use tar files with Docker generated on macOS,
you can either:
- Use the `--no-xattr` flag for the macOS `tar` command to strip **all** the
extended attributes. If you want to preserve extended attributes, this isn't
a recommended option.
- Install and use `gnu-tar` to create the tarballs on macOS instead of the
default `tar` implementation. To install `gnu-tar` using Homebrew:
```console
$ brew install gnu-tar
```
After installing, add the `gnu-tar` binary to your `PATH`, for example by
updating your `.zshrc` file:
```console
$ echo 'PATH="/opt/homebrew/opt/gnu-tar/libexec/gnubin:$PATH"' >> ~/.zshrc
$ source ~/.zshrc
```