vSphere Docker Volume Service (vDVS) enables customers to address persistent storage requirements for Docker containers in vSphere environments. This service is integrated with Docker Volume Plugin framework. Docker users can now consume vSphere Storage (vSAN, VMFS, NFS) to stateful containers using Docker.
vDVS is Docker Certified to use with Docker Enterprise Edition and available in Docker store.
To read more about code development and testing please read CONTRIBUTING.md as well as the FAQ on the project site.
Detailed documentation can be found on our GitHub Documentation Page.
Click here to download from Github releases
The download consists of 2 parts:
- VIB (vDVS driver): The ESX code is packaged as a vib or an offline depot
- Managed plugin (vDVS plugin): Plugin is available on Docker store.
Pick the latest release and use the same version of vDVS plugin (on Docker host VM) and driver (on ESX).
The demos are located on the project site and wiki
Project page is located @ https://vmware.github.io/docker-volume-vsphere/. Documentation, FAQ and other content can be found @ https://vmware.github.io/docker-volume-vsphere/documentation
ESXi: 6.0 and above Docker: 1.12 and higher (Recommended 1.13/17.03 and above to use managed plugin)
Install vSphere Installation Bundle (VIB). Please refer to vSphere documentation.
Install using localcli on an ESX node
esxcli software vib install -v /tmp/<vib_name>.vib
Make sure you provide the absolute path to the .vib
file or the install will fail.
- Please make sure to uninstall older releases of DEB/RPM using following commands.
sudo dpkg -r docker-volume-vsphere # Ubuntu or deb based distros
sudo rpm -e docker-volume-vsphere # Photon or rpm based distros
- Docker service needs to be restarted until Issue #32635 is resolved.
systemctl restart docker
For Docker 1.13 and above, install managed plugin from Docker Store.
docker plugin install --grant-all-permissions --alias vsphere vmware/docker-volume-vsphere:latest
For Docker 1.12 and earlier, use DEB or RPM package.
sudo dpkg -i <name>.deb # Ubuntu or deb based distros
sudo rpm -ivh <name>.rpm # Photon or rpm based distros
Note: DEB/RPM packages will be deprecated going forward and will not be available.
Refer to tenancy documentation for setting up tenants.
# To select datastore use --name=MyVolume@<Datastore Name>
$ docker volume create --driver=vsphere --name=MyVolume -o size=10gb
$ docker volume ls
$ docker volume inspect MyVolume
# To select datastore use MyVolume@<Datastore Name>
$ docker run --rm -it -v MyVolume:/mnt/myvol busybox
$ cd /mnt/myvol # to access volume inside container, exit to quit
$ docker volume rm MyVolume
$ /usr/lib/vmware/vmdkops/bin/vmdkops_admin.py volume ls
The relevant logging for debugging consists of the following:
- Docker Logs
- Plugin logs - VM (docker-side)
- Plugin logs - ESX (server-side)
Docker logs: see https://docs.docker.com/engine/admin/logging/overview/
/var/log/upstart/docker.log # Upstart
journalctl -fu docker.service # Journalctl/Systemd
VM (Docker-side) Plugin logs
- Log location:
/var/log/docker-volume-vsphere.log
- Config file location:
/etc/docker-volume-vsphere.conf
. - This JSON-formatted file controls logs retention, size for rotation and log location. Example:
{"MaxLogAgeDays": 28,
"MaxLogSizeMb": 100,
"LogPath": "/var/log/docker-volume-vsphere.log"}
-
Turning on debug logging:
-
Package user (DEB/RPM installation): Stop the service and manually run with
--log_level=debug
flag -
Managed plugin user: You can change the log level by passing
VDVS_LOG_LEVEL
key todocker plugin install
.e.g.
docker plugin install --grant-all-permissions --alias vsphere vmware/docker-volume-vsphere:latest VDVS_LOG_LEVEL=debug
-
ESX Plugin logs
- Log location:
/var/log/vmware/vmdk_ops.log
- Config file location:
/etc/vmware/vmdkops/log_config.json
See Python logging config format for content details. - Turning on debug logging: replace all 'INFO' with 'DEBUG' in config file, restart the service
VMware ESXi:
- 6.0, 6.0U1, 6.0U2
- 6.5
Guest Operating System:
- Ubuntu 14.04 or higher (64 bit)
- Needs Upstart or systemctl to start and stop the service
- Needs open vm tools or VMware Tools installed
sudo apt-get install open-vm-tools
- RedHat and CentOS
- Photon 1.0, Revision 2 (v4.4.51 or later)
Docker: 1.12 and higher (Recommended 1.13/17.03 and above to use managed plugin)
- Volume metadata file got deleted while removing volume from VM(placed on Esx2) which is in use by another VM(placed on Esx1) #1191. It's an ESX issue and will be available in the next vSphere release.
- Full volume name with format like "volume@datastore" cannot be specified in the compose file for stack deployment. #1315. It is a docker compose issue and a workaround has been provided in the issue.
- Specifying "Datastore Cluster" name during volume creation is not supported. Datastore clusters (as a part of Storage DRS) is a VC feature and not available on individual ESX. #556
- Volume creation using VFAT filesystem is not working currently. #1327
- Cormac Hogan
- Overview
- Docker + VSAN
- 0.7 Release Overview
- William Lam
- Virtual Blocks
- Ryan Kelly