28.4.0
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
GODEBUGenvironment 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 pullanddocker image pull. docker/cli#6420 - Fix a regression in v28.3.3 that could cause a panic on
docker pushif the client did not send anX-Registry-Authheader. moby/moby#50738 - Windows: Potentially fix an issue with "access denied" error when pulling images. moby/moby#50871
- containerd image store: Fix
docker historyfailing withsnapshot X does not existwhen calling on a non-native image that was built locally. moby/moby#50875 - containerd image store: Fix
docker image pruneto emit correctuntaganddeleteevents and list only the deleted images root digests instead of every blob. moby/moby#50837 - Remove interactive login prompt from
docker pushanddocker pullafter 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
runcto 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.Emailfield. 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--tlskeycommand-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.DiskUsageandvolumes.DiskUsageare 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
Candidateinterface, which was only for internal use. docker/cli#6269 - Go-SDK: cli-plugins/manager: remove
NewPluginErrorfunction, which was only for internal use. docker/cli#6269 - Go-SDK: cli-plugins/manager: remove deprecated
ResourceAttributesEnvvarconst. docker/cli#6269 - Go-SDK: cli/command/builder: deprecate
NewBuilderCommandandNewBakeStubCommand. 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
RunCreateandCreateOptions. docker/cli#6403 - Go-SDK: cli/command/context: deprecate
RunExportandExportOptions. docker/cli#6403 - Go-SDK: cli/command/context: deprecate
RunImport. docker/cli#6403 - Go-SDK: cli/command/context: deprecate
RunRemoveandRemoveOptions. docker/cli#6403 - Go-SDK: cli/command/context: deprecate
RunUpdateandUpdateOptions. docker/cli#6403 - Go-SDK: cli/command/context: deprecate
RunUse. docker/cli#6403 - Go-SDK: cli/command/image: deprecate
AuthResolverutility. 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
OauthLoginEscapeHatchEnvVarconst. 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, andAddPlatformFlagutilities, which were only used internally. docker/cli#6311 - Go-SDK: cli/command: remove deprecated
ConfigureAuthutility. docker/cli#6257 - Go-SDK: cli/command: remove deprecated
CopyToFileutility. docker/cli#6257 - Go-SDK: cli/config/types: update deprecation message for
AuthConfig.Emailfield. docker/cli#6392 - Go-SDK: cli: deprecate
VisitAll,DisableFlagsInUseLineutilities. These utilities were only used internally and will be removed in the next release. docker/cli#6276 - Go-SDK: cli: remove
HasCompletionArgutility. 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
ParseEnvFilein 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
ValidateHostutility. 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.TimeNanofields, as they are no longer returned by the API for progress messages. Use theevents.Messagetype instead to unmarshal the/eventsresponse. moby/moby#50762 - Go-SDK: the cli/registry/client package is deprecated and will be removed in the next release. docker/cli#6313