Docker Volume Plug-ins¶
Plug it in, plug it in...
Overview¶
This page reviews the REX-Ray Docker volume plug-ins, available for Docker 1.13+.
Getting Started¶
This section describes how to get started with REX-Ray Docker volume plug-ins!
Installation¶
Docker plug-ins can be installed with following command:
$ docker plugin install rexray/driver[:version]
In the above command line, if [:version] is omitted, it's equivalent to
the following command:
$ docker plugin install rexray/driver:latest
The latest tag refers to the most recent, GA version of a plug-in. The
[:version] component is known as a Docker tag. It follows the semantic
versioning model. However, in addition to latest, there is also the edge
tag which refers to the most recent version built from the master development
branch.
note
Please note that most of REX-Ray's plug-ins must be configured and installed at the same time since Docker starts the plug-in when installed. Otherwise the plug-in will fail since it is not yet configured. Please see the sections below for platform-specific configuration options.
Configuration¶
Docker volume plug-ins are configured via environment variables, and all REX-Ray plug-ins share the following, common configuration options:
| Environment Variable | Description | Default Value |
|---|---|---|
REXRAY_FSTYPE |
The type of file system to use | ext4 |
REXRAY_LOGLEVEL |
The log level | warn |
REXRAY_PREEMPT |
Enable preemption | false |
Amazon¶
REX-Ray has plug-ins for multiple Amazon Web Services (AWS) storage services.
Elastic Block Service¶
Elastic File System¶
Simple Storage Service¶
Ceph¶
REX-Ray includes plug-ins for the following Ceph storage technologies.
RADOS Block Device¶
Dell EMC¶
REX-Ray includes plug-ins for several Dell EMC storage platforms.
Isilon¶
ScaleIO¶
The ScaleIO plug-in can be installed with the following command:
docker plugin install rexray/scaleio
Requirements¶
The only requirement for ScaleIO plug-in is that the ScaleIO SDC toolkit must be installed on the same host on which Docker is running.
Configuration¶
The following environment variables can be used to configure the ScaleIO plug-in:
| Environment Variable | Description | Default | Required |
|---|---|---|---|
SCALEIO_ENDPOINT |
The ScaleIO gateway endpoint | ✓ | |
SCALEIO_INSECURE |
Flag for insecure gateway connection | true |
|
SCALEIO_USECERTS |
Flag indicating to require certificate validation | false |
|
SCALEIO_USERNAME |
ScaleIO user for connection | ✓ | |
SCALEIO_PASSWORD |
ScaleIO password | ✓ | |
SCALEIO_SYSTEMID |
The ID of the ScaleIO system to use | ✓ | |
SCALEIO_SYSTEMNAME |
The name of the ScaleIO system to use | If SCALEIO_SYSTEMID is omitted |
|
SCALEIO_PROTECTIONDOMAINID |
The ID of the protection domain to use | ||
SCALEIO_PROTECTIONDOMAINNAME |
The name of the protection domain to use | If SCALEIO_PROTECTIONDOMAINID is omitted |
|
SCALEIO_STORAGEPOOLID |
The ID of the storage pool to use | ||
SCALEIO_STORAGEPOOLNAME |
The name of the storage pool to use | If SCALEIO_STORAGEPOOLID is omitted |
|
SCALEIO_THINORTHICK |
The provision mode (Thin|Thick)Provisioned |
||
SCALEIO_VERSION |
The version of ScaleIO system |
Installation¶
The following example illustrates how to install version 0.7.20 of the
ScaleIO plug-in:
$ docker plug-in install rexray/scaleio:0.7.20 \
REXRAY_FSTYPE=xfs \
REXRAY_LOGLEVEL=warn \
REXRAY_PREEMPT=false \
SCALEIO_ENDPOINT=https://localhost/api \
SCALEIO_INSECURE=true \
SCALEIO_USERNAME=admin \
SCALEIO_PASSWORD=MySCaleio123 \
SCALEIO_SYSTEMNAME=scaleio \
SCALEIO_PROTECTIONDOMAINNAME=default \
SCALEIO_STORAGEPOOLNAME=default
The above command prompts the user to acknowledge the plug-ins required permissions:
Plug-in "rexray/scaleio:0.7.20" is requesting the following privileges:
- network: [host]
- mount: [/dev]
- mount: [/bin/emc]
- mount: [/opt/emc/scaleio/sdc]
- allow-all-devices: [true]
- capabilities: [CAP_SYS_ADMIN]
Do you grant the above permissions? [y/N]
Once installed, the status of the plug-in can be retrieved like so:
$ docker plug-in ls
ID NAME DESCRIPTION ENABLED
5c08e5947d8f rexray/scaleio:0.7.20 REX-Ray for EMC Dell ScaleIO true
Create a volume¶
The following example illustrates creating a volume using the ScaleIO plug-in:
$ docker volume create --driver rexray/scaleio:0.7.0-20 --name test-vol-1
Verify the volume was successfuly created by listing the volumes:
$ docker volume ls
DRIVER VOLUME NAME
rexray/scaleio:0.7.0 test-vol-1
Inspect a volume¶
The following example illustrates inspecting a volume created using the ScaleIO plug-in:
$ docker volume inspect test-vol-1
[
{
"Driver": "rexray/scaleio:0.7.0-20",
"Labels": {},
"Mountpoint": "/var/lib/docker/plug-ins/9f30ec546a4b1bb19574e491ef3e936c2583eda6be374682eb42d21bbeec0dd8/rootfs",
"Name": "test-vol-1",
"Options": {},
"Scope": "global",
"Status": {
"availabilityZone": "default",
"fields": null,
"iops": 0,
"name": "test-vol-1",
"server": "scaleio",
"service": "scaleio",
"size": 16,
"type": "default"
}
}
]
Use a volume¶
The following example illustrates using a volume created using the ScaleIO plug-in:
$ docker run -v test-vol-1:/data busybox mount | grep "/data"
/dev/scinia on /data type xfs (rw,seclabel,relatime,nouuid,attr2,inode64,noquota)
Remove a volume¶
The following example illustrates removing a volume created using the ScaleIO plug-in:
$ docker volume rm test-vol-1
Validate the volume was deleted successfully by listing the volumes:
$ docker volume ls
DRIVER VOLUME NAME
Google¶
REX-Ray ships with plug-ins for Google Compute Engine (GCE) as well.
GCE Persistent Disk¶
Microsoft¶
Microsoft Azure plug-ins are included with REX-Ray as well.