Docker has long been known for the familiar ‘docker run’ command, which spawns a single container based on a Docker image. But with the recently-added clustering features and services abstraction, Docker can now do much more. Users can create a cluster of Docker daemons and declare a desired state for their distributed application that will be maintained in the face of failures.