diff --git a/daemon/containerd/image_push.go b/daemon/containerd/image_push.go index d54113218a..2b5958137b 100644 --- a/daemon/containerd/image_push.go +++ b/daemon/containerd/image_push.go @@ -144,7 +144,16 @@ func (i *ImageService) pushRef(ctx context.Context, targetRef reference.Named, p wrapped := wrapWithFakeMountableBlobs(store, mountableBlobs) store = wrapped - pusher, err := resolver.Pusher(ctx, targetRef.String()) + // Annotate ref with digest to push only push tag for single digest + ref := targetRef + if _, digested := ref.(reference.Digested); !digested { + ref, err = reference.WithDigest(ref, target.Digest) + if err != nil { + return err + } + } + + pusher, err := resolver.Pusher(ctx, ref.String()) if err != nil { return err }