What are the differences between Kubernetes Pods and Docker Compose(s) (Composures?)

docker compose is just a way to declare the container you have to start: it has no notion of node or cluster, unless it launches swarm master and swarm nodes, but that is docker swarm)
Update July 2016, 7 months later: docker 1.12 blurs the lines and includes a “swarm mode”.

It is vastly different from kubernetes, a google tool to manage thousands of containers groups as Pod, over tens or hundreds of machines.

A Kubernetes Pod would be closer from a docker swarm:

Imagine individual Docker containers as packing boxes. The boxes that need to stay together because they need to go to the same location or have an affinity to each other are loaded into shipping containers.
In this analogy, the packing boxes are Docker containers, and the shipping containers are Kubernetes pods.

As commented below by ealeon:

I think pod is equivalent to compose except that kubernetes can orchestrated pods, whereas there is nothing orchestrating compose unless it is used with swarm like you’ve mentioned.

You can launch kubernetes commands with docker-compose by the way.

http://3.bp.blogspot.com/-MDUsXIy-lt0/VMuhJ9jBefI/AAAAAAAAA0I/qPuy0N8UXWA/s1600/Screen%2BShot%2B2015-01-30%2Bat%2B7.19.27%2BAM.png

In terms of how Kubernetes differs from other container management systems out there, such as Swarm, Kubernetes is the third iteration of cluster managers that Google has developed.

You can hear more about kubernetes in the episode #3 of Google Cloud Platform Podcast.

While it is true both can create a multi-container application, a Pod also serves as a unit of deployment and horizontal scaling/replication, which docker compose does not provide.
Plus, you don’t create a pod directly, but use controllers (like replication controllers).

POD lives within a larger platform which offers Co-location (co-scheduling), fate sharing, coordinated replication, resource sharing, and dependency management.
Docker-compose lives… on its own, with its docker-compose.yml file

Leave a Comment

Hata!: SQLSTATE[HY000] [1045] Access denied for user 'divattrend_liink'@'localhost' (using password: YES)