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?

  • can't access internet from the docker container runngin ubuntu 14.04
  • Delete an image, docker-compose cannot work
  • Docker Commit Created Images and ENTRYPOINT
  • Test automation with docker, travis and a large database
  • create_network(): failed to allocate gateway (x.x.x.x): Address already in use in test case
  • Build and use docker image from docker-compose
  • Filebeat vs Java logging appenders
  • Laradock (container) files on Windows
  • Sebp/elk not running on docker with error
  • Handling “breaking” changes in docker images
  • Add docker host into docker network
  • Where are the log files located in the Graylog server Docker container?
  • 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.