What is the difference between Docker Swarm and Kubernetes/Mesophere?

From what I understand, Kubernetes/Mesosphere is a cluster manager and Docker Swarm is an orchestration tool. I am trying to understand how they are different? Is Docker Swarm analogous to the POSIX API in the Docker world while Kubernetes/Mesosphere are different implementations? Or are they different layers?

  • Automated builds for multiple containers
  • Bluemix Docker container cf ic run doesn't seem to accept -p sub-command
  • Is there a way to add only changed files to a docker image as a new layer - without resorting to docker commit?
  • How do you know that public Docker images are secure?
  • Can I share docker images between windows and linux?
  • Docker private registry status in “Restarting (1)” Forever
  • Mongo Docker not creating user
  • Run shell script inside Docker container from another Docker container?
  • docker compose won't mount the external volume
  • Haskell Stack Image Container Execute On Docker run
  • There is 1 other session using the database while resetting database in django using docker
  • How to setup sockets on docker-compose version 2?
  • 2 Solutions collect form web for “What is the difference between Docker Swarm and Kubernetes/Mesophere?”

    Swarm is a very simple add-on to Docker. It currently does not provide all the features of Kubernetes. It is currently hard to predict how the ecosystem of these tools will play out, it’s possible that Kubernetes will make use of Swarm.

    Disclosure: I’m a lead engineer on Kubernetes

    Kubernetes is a cluster orchestration system inspired by the container orchestration that runs at Google. Built by many of the same engineers who built that system. It was designed from the ground up to be an environment for building distributed applications from containers. It includes primitives for replication and service discovery as core primitives, where-as such things are added via frameworks in Mesos. The primary goal of Kubernetes is a system for building, running and managing distributed systems.

    Swarm is an effort by Docker to extend the existing Docker API to make a cluster of machines look like a single Docker API. Fundamentally, our experience at Google and elsewhere indicates that the node API is insufficient for a cluster API. You can see a bunch of discussion on this here: https://github.com/docker/docker/pull/8859 and here: https://github.com/docker/docker/issues/8781

    Docker will be the best open platform for developers and sysadmins to build, ship, and run distributed applications.