28.4.0
For a full list of pull requests and changes in this release, refer to the relevant GitHub milestones:
- docker/cli, 28.4.0 milestone
- moby/moby, 28.4.0 milestone
- Deprecated and removed features, see Deprecated Features.
- Changes to the Engine API, see API version history.
New
- Allow Docker CLI to set the
GODEBUG
environment variable when the key-value pair ("GODEBUG":"..."
) exists inside the docker context metadata. docker/cli#6399
Bug fixes and enhancements
- Add shell completion for
docker pull
anddocker image pull
. docker/cli#6420 - Fix a regression in v28.3.3 that could cause a panic on
docker push
if the client did not send anX-Registry-Auth
header. moby/moby#50738 - Windows: Potentially fix an issue with "access denied" error when pulling images. moby/moby#50871
- containerd image store: Fix
docker history
failing withsnapshot X does not exist
when calling on a non-native image that was built locally. moby/moby#50875 - containerd image store: Fix
docker image prune
to emit correctuntag
anddelete
events and list only the deleted images root digests instead of every blob. moby/moby#50837 - Remove interactive login prompt from
docker push
anddocker pull
after a failure caused by missing authentication. docker/cli#6256
Packaging updates
- Update BuildKit to v0.24.0. moby#50888
- Update Go runtime to 1.24.7. moby/moby#50889, docker/cli#6422
- Update
runc
to v1.3.0. moby/moby#50699 - Update containerd (static binaries only) to v1.7.28. moby/moby#50700
Networking
- Fix an issue that could cause slow container restart on live-restore. moby/moby#50829
API
- Update deprecation message for
AuthConfig.Email
field. moby/moby#50797
Go SDK
- Deprecate profiles package which got migrated to github.com/moby/profiles. moby/moby#50513
Deprecations
- Deprecate special handling for quoted values for the
--tlscacert
,--tlscert
, and--tlskey
command-line flags. docker/cli#6291 - Mark legacy links env vars (
DOCKER_KEEP_DEPRECATED_LEGACY_LINKS_ENV_VARS
) as deprecated in v28.4 and set for removal in v30.0. docker/cli#6309 - Go-SDK: Deprecate field
NetworkSettingsBase.Bridge
, structNetworkSettingsBase
, all the fields ofDefaultNetworkSettings
, and structDefaultNetworkSettings
. moby/moby#50839 - Go-SDK: api/types:
build.CacheDiskUsage
,container.DiskUsage
,images.DiskUsage
andvolumes.DiskUsage
are now deprecated and will be removed in the next major release. moby/moby#50768 - Go-SDK: cli-plugins/manager: deprecate
ReexecEnvvar
. docker/cli#6411 - Go-SDK: cli-plugins/manager: deprecate annotation aliases (
CommandAnnotationPlugin
,CommandAnnotationPluginVendor
,CommandAnnotationPluginVersion
,CommandAnnotationPluginInvalid
,CommandAnnotationPluginCommandPath
) in favor of their equivalent incli-plugins/manager/metadata
. docker/cli#6298 - Go-SDK: cli-plugins/manager: deprecate metadata aliases (
NamePrefix
,MetadataSubcommandName
,HookSubcommandName
,Metadata
,ReexecEnvvar
) in favor of their equivalent incli-plugins/manager/metadata
. docker/cli#6269 - Go-SDK: cli-plugins/manager: remove
Candidate
interface, which was only for internal use. docker/cli#6269 - Go-SDK: cli-plugins/manager: remove
NewPluginError
function, which was only for internal use. docker/cli#6269 - Go-SDK: cli-plugins/manager: remove deprecated
ResourceAttributesEnvvar
const. docker/cli#6269 - Go-SDK: cli/command/builder: deprecate
NewBuilderCommand
andNewBakeStubCommand
. These functions will be removed in the next release. docker/cli#6312 - Go-SDK: cli/command/builder: deprecate
NewPruneCommand
. docker/cli#6343 - Go-SDK: cli/command/checkpoint: deprecate
NewCheckpointCommand
. This function will be removed in the next release. docker/cli#6312 - Go-SDK: cli/command/checkpoint: deprecate
NewFormat
,FormatWrite
. docker/cli#6341 - Go-SDK: cli/command/completion: deprecate
NoComplete
. docker/cli#6405 - Go-SDK: cli/command/completion: remove deprecated
ValidArgsFn
. docker/cli#6259 - Go-SDK: cli/command/config: deprecate
NewConfigCommand
. This function will be removed in the next release. docker/cli#6312 - Go-SDK: cli/command/config: deprecate
NewFormat
,FormatWrite
,InspectFormatWrite
. docker/cli#6341 - Go-SDK: cli/command/config: deprecate
RunConfigCreate
,CreateOptions
,RunConfigInspect
,InspectOptions
,RunConfigList
,ListOptions
,RunConfigRemove
, andRemoveOptions
. docker/cli#6369 - Go-SDK: cli/command/container: deprecate
NewBuildCommand
,NewPullCommand
,NewPushCommand
,NewImagesCommand
,NewImageCommand
,NewHistoryCommand
,NewImportCommand
,NewLoadCommand
,NewRemoveCommand
,NewSaveCommand
,NewTagCommand
,NewPruneCommand
. These functions will be removed in the next release. docker/cli#6312 - Go-SDK: cli/command/container: deprecate
NewDiffFormat
,DiffFormatWrite
. These functions were only used internally and will be removed in the next release. docker/cli#6341 - Go-SDK: cli/command/container: deprecate
NewRunCommand
,NewExecCommand
,NewPsCommand
,NewContainerCommand
,NewAttachCommand
,NewCommitCommand
,NewCopyCommand
,NewCreateCommand
,NewDiffCommand
,NewExportCommand
,NewKillCommand
,NewLogsCommand
,NewPauseCommand
,NewPortCommand
,NewRenameCommand
,NewRestartCommand
,NewRmCommand
,NewStartCommand
,NewStatsCommand
,NewStopCommand
,NewTopCommand
,NewUnpauseCommand
,NewUpdateCommand
,NewWaitCommand
,NewPruneCommand
. These functions will be removed in the next release. docker/cli#6312 - Go-SDK: cli/command/context: deprecate
NewContextCommand
. This function will be removed in the next release. docker/cli#6312 - Go-SDK: cli/command/context: deprecate
RunCreate
andCreateOptions
. docker/cli#6403 - Go-SDK: cli/command/context: deprecate
RunExport
andExportOptions
. docker/cli#6403 - Go-SDK: cli/command/context: deprecate
RunImport
. docker/cli#6403 - Go-SDK: cli/command/context: deprecate
RunRemove
andRemoveOptions
. docker/cli#6403 - Go-SDK: cli/command/context: deprecate
RunUpdate
andUpdateOptions
. docker/cli#6403 - Go-SDK: cli/command/context: deprecate
RunUse
. docker/cli#6403 - Go-SDK: cli/command/image: deprecate
AuthResolver
utility. docker/cli#6357 - Go-SDK: cli/command/image: deprecate
NewHistoryFormat
,HistoryWrite
. docker/cli#6341, docker/cli#6341 - Go-SDK: cli/command/manifest: deprecate
NewManifestCommand
. This functions will be removed in the next release. docker/cli#6312 - Go-SDK: cli/command/network: deprecate
NewFormat
,FormatWrite
. docker/cli#6341 - Go-SDK: cli/command/network: deprecate
NewNetworkCommand
. These functions will be removed in the next release. docker/cli#6312 - Go-SDK: cli/command/node: deprecate
NewFormat
,FormatWrite
,InspectFormatWrite
. docker/cli#6341 - Go-SDK: cli/command/node: deprecate
NewNodeCommand
. This functions will be removed in the next release. docker/cli#6312 - Go-SDK: cli/command/plugin: deprecate
NewFormat
,FormatWrite
. docker/cli#6341 - Go-SDK: cli/command/plugin: deprecate
NewPluginCommand
. This function will be removed in the next release. docker/cli#6312 - Go-SDK: cli/command/registry: deprecate
NewLoginCommand
,NewLogoutCommand
,NewSearchCommand
. These functions will be removed in the next release. docker/cli#6312 - Go-SDK: cli/command/registry: deprecate
NewSearchFormat
,SearchWrite
. docker/cli#6341 - Go-SDK: cli/command/registry: deprecate
OauthLoginEscapeHatchEnvVar
const. docker/cli#6413 - Go-SDK: cli/command/secret: deprecate
NewFormat
,FormatWrite
,InspectFormatWrite
. docker/cli#6341 - Go-SDK: cli/command/secret: deprecate
NewSecretCommand
. This functions will be removed in the next release. docker/cli#6312 - Go-SDK: cli/command/service: deprecate
NewFormat
,InspectFormatWrite
. docker/cli#6341 - Go-SDK: cli/command/service: deprecate
NewServiceCommand
. This function will be removed in the next release. docker/cli#6312 - Go-SDK: cli/command/stack: deprecate
NewStackCommand
. This function will be removed in the next release. docker/cli#6312 - Go-SDK: cli/command/stack: deprecate
RunList
,RunServices
. docker/cli#6391 - Go-SDK: cli/command/swarm: deprecate
NewSwarmCommand
. This function will be removed in the next release. docker/cli#6312 - Go-SDK: cli/command/system: deprecate
NewVersionCommand
,NewInfoCommand
,NewSystemCommand
,NewEventsCommand
,NewInspectCommand
. These functions will be removed in the next release. docker/cli#6312 - Go-SDK: cli/command/task: deprecate
NewTaskFormat
,FormatWrite
. docker/cli#6341 - Go-SDK: cli/command/trust: deprecate
NewTrustCommand
. This function will be removed in the next release. docker/cli#6312 - Go-SDK: cli/command/trust: deprecate
SignedTagInfo
,SignerInfo
,NewTrustTagFormat
,NewSignerInfoFormat
,TagWrite
,SignerInfoWrite
. docker/cli#6341 - Go-SDK: cli/command/volume: deprecate
NewVolumeCommand
,NewPruneCommand
. These functions will be removed in the next release. docker/cli#6312 - Go-SDK: cli/command: remove
AddTrustSigningFlags
,AddTrustVerificationFlags
, andAddPlatformFlag
utilities, which were only used internally. docker/cli#6311 - Go-SDK: cli/command: remove deprecated
ConfigureAuth
utility. docker/cli#6257 - Go-SDK: cli/command: remove deprecated
CopyToFile
utility. docker/cli#6257 - Go-SDK: cli/config/types: update deprecation message for
AuthConfig.Email
field. docker/cli#6392 - Go-SDK: cli: deprecate
VisitAll
,DisableFlagsInUseLine
utilities. These utilities were only used internally and will be removed in the next release. docker/cli#6276 - Go-SDK: cli: remove
HasCompletionArg
utility. This utility was only used internally. docker/cli#6276 - Go-SDK: deprecate
cli/command.RegistryAuthenticationPrivilegedFunc
. docker/cli#6256 - Go-SDK: deprecate cli/command/stack/formatter. docker/cli#6391
- Go-SDK: deprecate cli/command/stack/loader. docker/cli#6391
- Go-SDK: deprecate cli/command/stack/options. docker/cli#6391
- Go-SDK: deprecate cli/command/stack/swarm. docker/cli#6391
- Go-SDK: opts: deprecate
NewNamedListOptsRef
,NewNamedMapOpts
,NamedListOpts
,NamedMapOpts
, andNamedOption
. These types and functions are no longer used and will be removed in the next release. docker/cli#6292 - Go-SDK: opts: deprecate
ParseEnvFile
in favour ofkvfile.Parse
. docker/cli#6381 - Go-SDK: opts: deprecate
QuotedString
. This utility is no longer used, and will be removed in the next release. docker/cli#6275 - Go-SDK: opts: deprecate
ValidateHost
utility. This function is no longer used, and will be removed in the next release. docker/cli#6280 - Go-SDK: pkg/jsonmessage: deprecate the
JSONMessage.From
,JSONMessage.Time
, andJSONMessage.TimeNano
fields, as they are no longer returned by the API for progress messages. Use theevents.Message
type instead to unmarshal the/events
response. moby/moby#50762 - Go-SDK: the cli/registry/client package is deprecated and will be removed in the next release. docker/cli#6313