Docker containers wrap up a piece of software in a complete file system that contains everything it needs to run; runtime, system tools, system libraries – anything you can install on a server. This guarantees the application will always run the same, regardless of the environment in which it’s running.


Developers can use vCommander to deploy a Linux VM and install the Docker engine. Once the machine is provisioned, the developer may then SSH into the VM and run Docker commands against the Docker Engine.


In our example, we’ll use CentOS, but Docker can be installed on most Linux distributions.


Creating the Service Catalog Entry


First we configure the Service Catalog entry. Embotics recommends providing a clear, understandable service name as always, along with uploading the Docker icon and creating a category.


We’ll use an existing CentOS minimal install template that already has net-tools and VMware tools installed.


For the rest of the service catalog entry, we can use the default values or customize as necessary.


Complete the wizard to save the service catalog entry.

 

Creating the Completion Workflow


Next, we’ll configure a completion workflow to install the Docker Engine when the VM gets deployed.


The workflow is broken down into eight steps. In Step 1, we make sure that the deployed VM has obtained an IP Address before the workflow continues.



The rest of the workflow will use the Execute SSH step with credentials I’ve already stored. Each also uses the variable #{target.ipAddress} to connect to the new VM.


In Step 2 we will update the VM by issuing the command sudo yum -y update.


Step 3 adds the Docker repository to yum by issuing the command curl -fsSL https://get.docker.com/ | sh


Step 4 configures Docker to start when the server boots by running the command chkconfig docker on


Step 5 starts Docker with the command service docker start && service docker status


Step 6 waits for Docker to start (you may need to tweak the wait time here, depending on your environment).



Step 7 runs a "Hello World" test on the Docker engine.



Step 8 verifies the Docker container is running.



The last thing we need to do is assign this workflow to the component of the service catalog item we first created, and complete the Wizard.