         #log "Container #{name} already exists, skipping..."
         # @TODO check if this container has dependents or not...
         logAction name, "already exists - running in case of dependents"
-        return command.container.start callback
+        return isRunning command.container, (err, running) ->
+          return command.container.start callback if not running
+
+          # container exists AND is running - stop, restart
+          return command.container.stop (err) ->
+            command.container.start callback
 
       logAction name, "creating..."
 


  log "#{padName(name)}  #{message}"

resolveOrder = (config, cluster, callback) ->
  containerDetails = {}

  for containerName in cluster
    container = config.containers[containerName]
    containerDetails[containerName] = container


    iterator = (details, callback) ->
      name = details.name
      container = docker.getContainer name
      isRunning container, (err, running) ->
        if not running
          logAction name, "starting..."
          container.start callback
        else
