Remove Docker persistent storage volumes from VMware datastore

After you have finished using your Docker persistent storage volumes you can remove them from the environment so you can clean them up and don’t consume more storage that what is really needed. Here is what you have to do do clean those up.

List your volumes

docker volume ls

You will see your docker volumes stored in your /vsanDatastore/dockvols folder

removedockvol1

Remove the volumes not needed

docker volume rm volumename

ex: docker volume rm MyVolume

removedockvol2

This will remove the volume from the docker host and will also remove it from the VMware vSphere datastore.

Deploying containers with persistent storage in VMware environments

In my last blog post I described how to install the VMware Plugin for Docker.  Now we will deploy an environment and show how we can use a persistent storage volume across containers.

Build a new volume for a container

docker volume create –driver-vmdk –name BusyBox1 -o size=2gb

vmdocksharevol1

You can check the volume with docker volume ls or docker volume inspect  commands.

Create a container with persistent storage

docker run –rm -it -v Volumename:/mnt/mymount containerimage.

docker run –rm -it -v BusyBox1:/mnt/myvol busybox

vmdocksharevol2

Create a file in the persistent storage

In your container go to the directory you specified in the previous command. In our case it is /mnt/myvol

Create a quick file ex: touch file1  and then add some information to it.

vmdocksharevol3

We have created a file in the persistent storage not in the container file system.

Now you can exit your container. ex: exit

Create a different container and attach the persistent volume

I will download a new image for an Ubuntu:latest container and mount the persistent storage volume.

docker run –rm -it -v BusyBox1:/mnt/myvol ubuntu

vmdocksharevol5

Change to the same directory /mnt/myvol and see that you can browse the file was created before.

Why is this important? 

This allows the developers or administrators to provide a persistent storage that can be used across container reboots to save data outside the container. This can be a great use case for database or shared data that can be used for different containers.

 

Drop me a comment if you like this type of post.

Leveraging the VMware Docker Plugin in your environment

You may have heard that VMware released a docker plugin. This plugin allows the developers use persistent storage and store it in the VMware datastore while allowing IT Administrators the capability to manage their environment their way.

In this post I will go thru the steps to add the all the components to the ESXi server and to the VM’s

Download Binaries

To download the binaries I used a Ubuntu machine.

1. create a folder to download the files. ex: mkdir vmware

2. change to the directory. cd vmware

3. download the files:

ubuntu package: https://github.com/vmware/docker-volume-vsphere/releases/download/1.0.beta/docker-volume-vsphere_1.0.beta_amd64.deb

ESXi vib package: https://github.com/vmware/docker-volume-vsphere/releases/download/1.0.beta/vmware-esx-vmdkops-1.0.beta.vib

Optional: I created a script that you can use to download all the files directly to your Linux Machine Download the Script from GitLab

Example: curl https://gitlab.com/carlosvargas/devops/raw/master/ubuntu/downvmdockplugin | sh

vmdockplugin1

Copy the VIB to your ESXi server

To copy the VIB file you can follow these steps

scp vmware-esx-vmdkops-1.0.beta.vib root@1.2.3.4:/vmfs/volume/datastorename/foldername/vmware-esx-vmdkops-1.0.beta.vib

vmdockplugin2

 

Enable Community Support for VIB

Connect to your ESXi host: ssh root@1.2.3.4

Enable community support for VIB files: esxcli software acceptance set –level communitysupported

Install the VMware Plugin VIB: esxcli software vip install –no-sig-check -v /vmfs/…./vmware-esx-vmdkops-1.0.beta.vip

vmdockplugin3

 

Copy VMware Docker Plugin to your Docker VM

scp docker-volume-vsphere_1.0.beta_amd64.deb user@1.2.3.4:/home/user/docker-volume-vsphere_1.0.beta_amd64.deb

vmdockplugin4a

 

Install the VMware Plugin in your Ubuntu VM

Login to your VM and install the plugin. Ex: sudo dpkg -i docker-volume-vsphere_1.0.beta_amd64.deb

vmdockplugin5

Reboot your node: sudo reboot

Create Docker Volume with the VMware Plugin

To create the volume you need to use the –driver=vmdk parameter. here is an example:  docker volume create –driver=vmdk –name=MyVolume -o size 10gb

vmdockplugin6
To check your volumes execute: docker volume ls

Where are this volumes stored? 

Go to to your vsanDatastore, you will see a new folder called docksvols. There you will find your new volume created.

vmdockplugin7