diff --git a/api/server/router/image/image_routes.go b/api/server/router/image/image_routes.go index 0ce48dee5cabb..cd6b2fe96a39a 100644 --- a/api/server/router/image/image_routes.go +++ b/api/server/router/image/image_routes.go @@ -207,10 +207,9 @@ func (s *imageRouter) getImagesByName(ctx context.Context, w http.ResponseWriter } func (s *imageRouter) toImageInspect(img *image.Image) (*types.ImageInspect, error) { - refs := s.referenceBackend.References(img.ID().Digest()) repoTags := []string{} repoDigests := []string{} - for _, ref := range refs { + for _, ref := range img.Details.References { switch ref.(type) { case reference.NamedTagged: repoTags = append(repoTags, reference.FamiliarString(ref)) diff --git a/daemon/containerd/image.go b/daemon/containerd/image.go index 37de1f5553c0a..aade0e66db617 100644 --- a/daemon/containerd/image.go +++ b/daemon/containerd/image.go @@ -41,7 +41,19 @@ func (i *ImageService) GetImage(ctx context.Context, refOrID string, options ima if err != nil { return nil, err } + + tagged, err := i.client.ImageService().List(ctx, fmt.Sprintf("target.digest==%s", ii.Target().Digest.String())) + tags := make([]reference.Named, 0, len(tagged)) + for _, i := range tagged { + name, err := reference.ParseNamed(i.Name) + if err != nil { + return nil, err + } + tags = append(tags, name) + } + img.Details = &image.Details{ + References: tags, Size: size, Metadata: nil, Driver: i.GraphDriverName(), diff --git a/daemon/images/image.go b/daemon/images/image.go index 3bb37a0f8a3c4..6bd2ac1e37acc 100644 --- a/daemon/images/image.go +++ b/daemon/images/image.go @@ -173,10 +173,14 @@ func (i *ImageService) GetImage(ctx context.Context, refOrID string, options ima } lastUpdated, err := i.imageStore.GetLastUpdated(img.ID()) + + references := i.referenceStore.References(img.ID().Digest()) + if err != nil { return nil, err } img.Details = &image.Details{ + References: references, Size: size, Metadata: layerMetadata, Driver: i.layerStore.DriverName(), diff --git a/image/image.go b/image/image.go index 25179a1c8a693..0c6bf257f805a 100644 --- a/image/image.go +++ b/image/image.go @@ -9,6 +9,7 @@ import ( "strings" "time" + "github.com/docker/distribution/reference" "github.com/docker/docker/api/types/container" "github.com/docker/docker/dockerversion" "github.com/docker/docker/layer" @@ -119,6 +120,7 @@ type Image struct { // Details provides additional image data type Details struct { + References []reference.Named Size int64 Metadata map[string]string Driver string