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  }