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)
h.ServeUnix("root", "test_volume")
Full example plugins
Documentation
¶
Index ¶
Constants ¶
View Source
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 Capability ¶
type Capability struct {
Scope string
}
Capability represents the list of capabilities a volume driver can return
type Driver ¶
type Driver interface {
Create(Request) Response
List(Request) Response
Get(Request) Response
Remove(Request) Response
Path(Request) Response
Mount(MountRequest) Response
Unmount(UnmountRequest) Response
Capabilities(Request) Response
}
Driver represent the interface a driver must fulfill.
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 MountRequest ¶
type MountRequest struct {
Name string
ID string
}
MountRequest structure for a volume mount request
type Request ¶
type Request struct {
Name string
Options map[string]string `json:"Opts,omitempty"`
}
Request is the structure that docker's requests are deserialized to.
type Response ¶
type Response struct {
Mountpoint string
Err string
Volumes []*Volume
Volume *Volume
Capabilities Capability
}
Response is the strucutre that the plugin's responses are serialized to.
type UnmountRequest ¶
type UnmountRequest struct {
Name string
ID string
}
UnmountRequest structure for a volume unmount request
Click to show internal directories.
Click to hide internal directories.