package volume

import "github.com/docker/docker/volume"

Index

Constants

const (
	LocalScope  = "local"
	GlobalScope = "global"
)

Scopes define if a volume has is cluster-wide (global) or local only. Scopes are returned by the volume driver when it is queried for capabilities and then set on a volume

const DefaultDriverName = "local"

DefaultDriverName is the driver name used for the driver implemented in the local package.

Types

type Capability

type Capability struct {
	// Scope is the scope of the driver, `global` or `local`
	// A `global` scope indicates that the driver manages volumes across the cluster
	// A `local` scope indicates that the driver only manages volumes resources local to the host
	// Scope is declared by the driver
	Scope string
}

Capability defines a set of capabilities that a driver is able to handle.

type DetailedVolume

type DetailedVolume interface {
	Labels() map[string]string
	Options() map[string]string
	Scope() string
	Volume
}

DetailedVolume wraps a Volume with user-defined labels, options, and cluster scope (e.g., `local` or `global`)

type Driver

type Driver interface {
	// Name returns the name of the volume driver.
	Name() string
	// Create makes a new volume with the given name.
	Create(name string, opts map[string]string) (Volume, error)
	// Remove deletes the volume.
	Remove(vol Volume) (err error)
	// List lists all the volumes the driver has
	List() ([]Volume, error)
	// Get retrieves the volume with the requested name
	Get(name string) (Volume, error)
	// Scope returns the scope of the driver (e.g. `global` or `local`).
	// Scope determines how the driver is handled at a cluster level
	Scope() string
}

Driver is for creating and removing volumes.

type LiveRestorer

type LiveRestorer interface {
	// LiveRestoreVolume allows a volume driver which implements this interface to restore any necessary resources (such as reference counting)
	// This is called only after the daemon is restarted with live-restored containers
	// It is called once per live-restored container.
	LiveRestoreVolume(_ context.Context, ref string) error
}

LiveRestorer is an optional interface that can be implemented by a volume driver It is used to restore any resources that are necessary for a volume to be used by a live-restored container

type Volume

type Volume interface {
	// Name returns the name of the volume
	Name() string
	// DriverName returns the name of the driver which owns this volume.
	DriverName() string
	// Path returns the absolute path to the volume.
	Path() string
	// Mount mounts the volume and returns the absolute path to
	// where it can be consumed.
	Mount(id string) (string, error)
	// Unmount unmounts the volume when it is no longer in use.
	Unmount(id string) error
	// CreatedAt returns Volume Creation time
	CreatedAt() (time.Time, error)
	// Status returns low-level status information about a volume
	Status() map[string]interface{}
}

Volume is a place to store data. It is backed by a specific driver, and can be mounted.

Source Files

volume.go

Directories

PathSynopsis
volume/drivers
volume/localPackage local provides the default implementation for volumes.
volume/mounts
volume/service
volume/service/opts
volume/testutils
Version
v27.2.0+incompatible
Published
Aug 27, 2024
Platform
js/wasm
Imports
2 packages
Last checked
1 hour ago

Tools for package owners.