diff --git a/taverna-docker-activity/src/main/java/org/apache/taverna/activities/docker/DockerActivity.java b/taverna-docker-activity/src/main/java/org/apache/taverna/activities/docker/DockerActivity.java
index 4ac2acf..0562a0b 100644
--- a/taverna-docker-activity/src/main/java/org/apache/taverna/activities/docker/DockerActivity.java
+++ b/taverna-docker-activity/src/main/java/org/apache/taverna/activities/docker/DockerActivity.java
@@ -189,6 +189,10 @@
     }
 
 
+    public DockerContainerConfiguration getContainerConfiguration() {
+        return containerConfiguration;
+    }
+
     private String getRenderedParam(ReferenceService referenceService, InvocationContext context, T2Reference key) {
         return (String) referenceService.renderIdentifier(key, String.class, context);
 
@@ -205,11 +209,6 @@
     return out;
     }
 
-    private boolean isStarted(Container container){
-        return  container.getStatus() != null
-                && container.getStatus().startsWith("Up");
-    }
-
     private Container getContainerFromName(RemoteClient remoteClient, String containerName){
         List<Container> containerList = remoteClient.listContainers();
         for(Container container : containerList){
@@ -221,6 +220,13 @@
                 }
             }
         }
-    return null;
+        return null;
     }
+
+    private boolean isStarted(Container container){
+        return  container.getStatus() != null
+                && container.getStatus().startsWith("Up");
+    }
+
+
 }
diff --git a/taverna-docker-activity/src/main/java/org/apache/taverna/activities/docker/DockerActivityHealthChecker.java b/taverna-docker-activity/src/main/java/org/apache/taverna/activities/docker/DockerActivityHealthChecker.java
new file mode 100644
index 0000000..aab03ec
--- /dev/null
+++ b/taverna-docker-activity/src/main/java/org/apache/taverna/activities/docker/DockerActivityHealthChecker.java
@@ -0,0 +1,49 @@
+package org.apache.taverna.activities.docker;
+
+import org.apache.taverna.visit.VisitReport;
+import org.apache.taverna.workflowmodel.health.HealthCheck;
+import org.apache.taverna.workflowmodel.health.HealthChecker;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class DockerActivityHealthChecker implements HealthChecker<Object> {
+
+    @Override
+    public boolean canVisit(Object o) {
+        return o instanceof DockerActivity;
+    }
+
+    @Override
+    public VisitReport visit(Object o, List<Object> list) {
+        DockerActivity activity = (DockerActivity) o;
+        DockerContainerConfiguration contCfg = activity.getContainerConfiguration();
+        String containerName = contCfg.getName();
+        boolean createValid = ValidationUtil.validateCreateContainer(contCfg, containerName);
+
+        List<VisitReport> reports = new ArrayList<VisitReport>();
+
+        if (createValid) {
+            reports.add(new VisitReport(HealthCheck.getInstance(), activity,
+                    "Docker create container operation is healthy",
+                    HealthCheck.NO_PROBLEM, VisitReport.Status.OK));
+        } else {
+            reports.add(new VisitReport(HealthCheck.getInstance(), activity,
+                    "Docker container creation health check failed. " +
+                            "A container with name " + containerName + " already exists.",
+                    HealthCheck.INVALID_CONFIGURATION, VisitReport.Status.SEVERE));
+        }
+
+        // collection all reports together
+        VisitReport.Status worstStatus = VisitReport.getWorstStatus(reports);
+        VisitReport report = new VisitReport(HealthCheck.getInstance(), activity,
+                "Docker Activity Health Report", HealthCheck.NO_PROBLEM, worstStatus, reports);
+
+        return report;
+    }
+
+    @Override
+    public boolean isTimeConsuming() {
+        return false;
+    }
+}
diff --git a/taverna-docker-activity/src/main/java/org/apache/taverna/activities/docker/ValidationUtil.java b/taverna-docker-activity/src/main/java/org/apache/taverna/activities/docker/ValidationUtil.java
new file mode 100644
index 0000000..6246f33
--- /dev/null
+++ b/taverna-docker-activity/src/main/java/org/apache/taverna/activities/docker/ValidationUtil.java
@@ -0,0 +1,77 @@
+package org.apache.taverna.activities.docker;
+
+import com.github.dockerjava.api.model.Container;
+
+import java.util.List;
+
+public class ValidationUtil {
+
+    /**
+     * Validates create container eligibility
+     * @param configuration
+     * @param containerName
+     * @return
+     */
+    public static boolean validateCreateContainer(DockerContainerConfiguration configuration, String containerName){
+        RemoteClient remoteClient = new RemoteClient(configuration);
+        Container container =  getContainerFromName(remoteClient,containerName);
+        return container == null;
+    }
+
+    /**
+     * Validates start container eligibility
+     * @param configuration
+     * @param containerName
+     * @return
+     */
+    public static boolean validateStartContainer(DockerContainerConfiguration configuration, String containerName){
+        RemoteClient remoteClient = new RemoteClient(configuration);
+        Container container =  getContainerFromName(remoteClient,containerName);
+        return !isStarted(container);
+    }
+
+    /**
+     * Validates stop container eligibility
+     * @param configuration
+     * @param containerName
+     * @return
+     */
+    public static boolean validateStopContainer(DockerContainerConfiguration configuration, String containerName){
+        RemoteClient remoteClient = new RemoteClient(configuration);
+        Container container =  getContainerFromName(remoteClient,containerName);
+        return isStarted(container);
+    }
+
+    /**
+     * Validates create container eligibility
+     * @param configuration
+     * @param containerName
+     * @return
+     */
+    public static boolean validateDeleteContainer(DockerContainerConfiguration configuration, String containerName){
+        RemoteClient remoteClient = new RemoteClient(configuration);
+        Container container =  getContainerFromName(remoteClient,containerName);
+        return container != null;
+    }
+
+    private static Container getContainerFromName(RemoteClient remoteClient, String containerName){
+        List<Container> containerList = remoteClient.listContainers();
+        for(Container container : containerList){
+            if(container.getNames().length > 0){
+                for(String name : container.getNames()){
+                    if(name.endsWith(containerName)){
+                        return container;
+                    }
+                }
+            }
+        }
+        return null;
+    }
+
+
+    private static boolean isStarted(Container container){
+        return  container.getStatus() != null
+                && container.getStatus().startsWith("Up");
+    }
+
+}
diff --git a/taverna-docker-activity/src/main/resources/META-INF/spring/docker-activity-context-osgi.xml b/taverna-docker-activity/src/main/resources/META-INF/spring/docker-activity-context-osgi.xml
index 6875bfb..69540e7 100755
--- a/taverna-docker-activity/src/main/resources/META-INF/spring/docker-activity-context-osgi.xml
+++ b/taverna-docker-activity/src/main/resources/META-INF/spring/docker-activity-context-osgi.xml
@@ -25,5 +25,6 @@
                       http://www.springframework.org/schema/osgi/spring-osgi.xsd">
 
     <reference id="configurationManager" interface="org.apache.taverna.configuration.ConfigurationManager" />
+    <service ref="dockerActivityHealthChecker" interface="org.apache.taverna.workflowmodel.health.HealthChecker" />
 
 </beans:beans>
diff --git a/taverna-docker-activity/src/main/resources/META-INF/spring/docker-activity-context.xml b/taverna-docker-activity/src/main/resources/META-INF/spring/docker-activity-context.xml
index c3bb871..90d99eb 100755
--- a/taverna-docker-activity/src/main/resources/META-INF/spring/docker-activity-context.xml
+++ b/taverna-docker-activity/src/main/resources/META-INF/spring/docker-activity-context.xml
@@ -26,4 +26,6 @@
         <constructor-arg name="configurationManager" ref="configurationManager" />
     </bean>
 
+    <bean id="dockerActivityHealthChecker" class="org.apache.taverna.activities.docker.DockerActivityHealthChecker" />
+
 </beans>
diff --git a/taverna-docker-activity/src/test/java/org/apache/taverna/activities/docker/test/DockerActivityTest.java b/taverna-docker-activity/src/test/java/org/apache/taverna/activities/docker/test/DockerActivityTest.java
index 751c247..8d69092 100755
--- a/taverna-docker-activity/src/test/java/org/apache/taverna/activities/docker/test/DockerActivityTest.java
+++ b/taverna-docker-activity/src/test/java/org/apache/taverna/activities/docker/test/DockerActivityTest.java
@@ -52,7 +52,7 @@
     public static final String DOCKER_REGISTRY = "https://registry-1.docker.io/v2";
 
     public static void main(String[] args) throws Exception {
-    DockerActivityTest activityTest = new DockerActivityTest();
+        DockerActivityTest activityTest = new DockerActivityTest();
         activityTest.setup();
         activityTest.testAll();
     }
@@ -81,12 +81,12 @@
 
     @Test
     public void testAll() throws Exception {
-//        testCreateContainer();
+        testCreateContainer();
         testInspectImage();
-//        testListContainers();
-//        testStartContainer();
-//        testStopContainer();
-//        testDeleteContainer();
+        testListContainers();
+        testStartContainer();
+        testStopContainer();
+        testDeleteContainer();
     }
 
     /**
