github.com/toplink-cn/moby@v0.0.0-20240305205811-460b4aebdf81/daemon/image_service.go (about) 1 package daemon 2 3 import ( 4 "context" 5 "io" 6 7 "github.com/distribution/reference" 8 "github.com/docker/docker/api/types" 9 "github.com/docker/docker/api/types/backend" 10 "github.com/docker/docker/api/types/events" 11 "github.com/docker/docker/api/types/filters" 12 imagetype "github.com/docker/docker/api/types/image" 13 "github.com/docker/docker/api/types/registry" 14 "github.com/docker/docker/builder" 15 "github.com/docker/docker/container" 16 "github.com/docker/docker/daemon/images" 17 "github.com/docker/docker/image" 18 "github.com/docker/docker/layer" 19 "github.com/docker/docker/pkg/archive" 20 "github.com/opencontainers/go-digest" 21 ocispec "github.com/opencontainers/image-spec/specs-go/v1" 22 ) 23 24 // ImageService is a temporary interface to assist in the migration to the 25 // containerd image-store. This interface should not be considered stable, 26 // and may change over time. 27 type ImageService interface { 28 // Images 29 30 PullImage(ctx context.Context, ref reference.Named, platform *ocispec.Platform, metaHeaders map[string][]string, authConfig *registry.AuthConfig, outStream io.Writer) error 31 PushImage(ctx context.Context, ref reference.Named, metaHeaders map[string][]string, authConfig *registry.AuthConfig, outStream io.Writer) error 32 CreateImage(ctx context.Context, config []byte, parent string, contentStoreDigest digest.Digest) (builder.Image, error) 33 ImageDelete(ctx context.Context, imageRef string, force, prune bool) ([]imagetype.DeleteResponse, error) 34 ExportImage(ctx context.Context, names []string, outStream io.Writer) error 35 PerformWithBaseFS(ctx context.Context, c *container.Container, fn func(string) error) error 36 LoadImage(ctx context.Context, inTar io.ReadCloser, outStream io.Writer, quiet bool) error 37 Images(ctx context.Context, opts imagetype.ListOptions) ([]*imagetype.Summary, error) 38 LogImageEvent(imageID, refName string, action events.Action) 39 CountImages(ctx context.Context) int 40 ImagesPrune(ctx context.Context, pruneFilters filters.Args) (*types.ImagesPruneReport, error) 41 ImportImage(ctx context.Context, ref reference.Named, platform *ocispec.Platform, msg string, layerReader io.Reader, changes []string) (image.ID, error) 42 TagImage(ctx context.Context, imageID image.ID, newTag reference.Named) error 43 GetImage(ctx context.Context, refOrID string, options backend.GetImageOpts) (*image.Image, error) 44 ImageHistory(ctx context.Context, name string) ([]*imagetype.HistoryResponseItem, error) 45 CommitImage(ctx context.Context, c backend.CommitConfig) (image.ID, error) 46 SquashImage(id, parent string) (string, error) 47 48 // Containerd related methods 49 50 PrepareSnapshot(ctx context.Context, id string, parentImage string, platform *ocispec.Platform, setupInit func(string) error) error 51 GetImageManifest(ctx context.Context, refOrID string, options backend.GetImageOpts) (*ocispec.Descriptor, error) 52 53 // Layers 54 55 GetImageAndReleasableLayer(ctx context.Context, refOrID string, opts backend.GetImageAndLayerOptions) (builder.Image, builder.ROLayer, error) 56 CreateLayer(container *container.Container, initFunc layer.MountInit) (layer.RWLayer, error) 57 LayerStoreStatus() [][2]string 58 GetLayerMountID(cid string) (string, error) 59 ReleaseLayer(rwlayer layer.RWLayer) error 60 LayerDiskUsage(ctx context.Context) (int64, error) 61 GetContainerLayerSize(ctx context.Context, containerID string) (int64, int64, error) 62 Mount(ctx context.Context, container *container.Container) error 63 Unmount(ctx context.Context, container *container.Container) error 64 Changes(ctx context.Context, container *container.Container) ([]archive.Change, error) 65 66 // Windows specific 67 68 GetLayerFolders(img *image.Image, rwLayer layer.RWLayer, containerID string) ([]string, error) 69 70 // Build 71 72 MakeImageCache(ctx context.Context, cacheFrom []string) (builder.ImageCache, error) 73 CommitBuildStep(ctx context.Context, c backend.CommitConfig) (image.ID, error) 74 75 // Other 76 77 DistributionServices() images.DistributionServices 78 Children(ctx context.Context, id image.ID) ([]image.ID, error) 79 Cleanup() error 80 StorageDriver() string 81 UpdateConfig(maxDownloads, maxUploads int) 82 }