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?

  • How to make docker application use port 80 (http) instead of 443 (https)
  • python TypeError: must be encoded string without NULL bytes, not str - docker iron requirements.txt
  • How to delete a docker image in dockerhub with a particular tag or set of tags using CLI?
  • setting gitlab with docker registry error 500
  • Docker in docker reach outer-layer registry by hostname
  • How do use external_links to connect docker-compose to common service?
  • Docker Default Operating System
  • Using LOAD CSV to import a local file to Neo4j in a Docker container
  • Can I store npm scripts outside of package.json, to avoid forcing Docker to refresh all modules on any npm script update?
  • OPTIONS field in Docker CLI commands - diff and cp
  • how does docker net=host handle port conflict
  • how to find out account or usage infos for a docker image?
  • 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.