README
¶
Docker volume extension api.
Go handler to create external volume extensions for Docker.
Usage
This library is designed to be integrated in your program.
- Implement the
volume.Driver
interface. - Initialize a
volume.Handler
with your implementation. - Call either
ServeTCP
orServeUnix
from thevolume.Handler
.
Example using TCP sockets:
d := MyVolumeDriver{}
h := volume.NewHandler(d)
h.ServeTCP("test_volume", ":8080")
Example using Unix sockets:
d := MyVolumeDriver{}
h := volume.NewHandler(d)
u, _ := user.Lookup("root")
gid, _ := strconv.Atoi(u.Gid)
h.ServeUnix("test_volume", gid)
Full example plugins
Documentation
¶
Index ¶
Constants ¶
const (
// DefaultDockerRootDirectory is the default directory where volumes will be created.
DefaultDockerRootDirectory = "/var/lib/docker-volumes"
)
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type CapabilitiesResponse ¶
type CapabilitiesResponse struct {
Capabilities Capability
}
CapabilitiesResponse structure for a volume capability response
type Capability ¶
type Capability struct {
Scope string
}
Capability represents the list of capabilities a volume driver can return
type CreateRequest ¶
type CreateRequest struct {
Name string
Options map[string]string `json:"Opts,omitempty"`
}
CreateRequest is the structure that docker's requests are deserialized to.
type Driver ¶
type Driver interface {
Create(*CreateRequest) error
List() (*ListResponse, error)
Get(*GetRequest) (*GetResponse, error)
Remove(*RemoveRequest) error
Path(*PathRequest) (*PathResponse, error)
Mount(*MountRequest) (*MountResponse, error)
Unmount(*UnmountRequest) error
Capabilities() *CapabilitiesResponse
}
Driver represent the interface a driver must fulfill.
type ErrorResponse ¶
type ErrorResponse struct {
Err string
}
ErrorResponse is a formatted error message that docker can understand
func NewErrorResponse ¶
func NewErrorResponse(msg string) *ErrorResponse
NewErrorResponse creates an ErrorResponse with the provided message
type GetRequest ¶
type GetRequest struct {
Name string
}
GetRequest structure for a volume get request
type GetResponse ¶
type GetResponse struct {
Volume *Volume
}
GetResponse structure for a volume get response
type Handler ¶
type Handler struct {
sdk.Handler
// contains filtered or unexported fields
}
Handler forwards requests and responses between the docker daemon and the plugin.
func NewHandler ¶
func NewHandler(driver Driver) *Handler
NewHandler initializes the request handler with a driver implementation.
type ListResponse ¶
type ListResponse struct {
Volumes []*Volume
}
ListResponse structure for a volume list response
type MountRequest ¶
type MountRequest struct {
Name string
ID string
}
MountRequest structure for a volume mount request
type MountResponse ¶
type MountResponse struct {
Mountpoint string
}
MountResponse structure for a volume mount response
type PathRequest ¶
type PathRequest struct {
Name string
}
PathRequest structure for a volume path request
type PathResponse ¶
type PathResponse struct {
Mountpoint string
}
PathResponse structure for a volume path response
type RemoveRequest ¶
type RemoveRequest struct {
Name string
}
RemoveRequest structure for a volume remove request
type UnmountRequest ¶
type UnmountRequest struct {
Name string
ID string
}
UnmountRequest structure for a volume unmount request