One of the common misconception about containers is that they act as light VMs. Which would make you think they are perfectly isolated. It's not true. While they all give you some level of isolation, they all share a common kernel. And that is the main idea actually. Containers are lightweight because you don't have to emulate the whole thing, because they share a common kernel.

Running your containers in production on some cloud provider might put you in a situation where your container will share a kernel with some unknown container. Does this make you uncomfortable?

The Double Dipping Analogy

Pretend you are at a party. And you are sharing a dip with someone. And that someone double dips. Do you keep sharing? If that someone is your significant other and you are of a trusting nature you will probably continue. If you absolutely don't know that person, you are a lot less likely to continue. And then let's say some people are adventurous, or maybe you are Bear Grylls. And by the way you'll find answers to all your double dip questions on this article.

Putting containers in production on a cloud is a little similar. If you have your own machine and you know all the containers sharing the same kernel, and you are of a trusting nature, you will probably continue. If you absolutely don't know the other containers sharing that kernel, you are less likely to continue. And then some people  don't care and just like to watch the world burn.

some people just like to watch the world burn

We all have our own trust level. Some people will never run two containers on one kernel because you never know what could happen. Others will be ok to share a kernel as long as they know all the other sharing parties. And some won't care about it and have their containers share a kernel with perfect strangers.

Containers are great, just make sure you know what you are getting into. And if you want to run Couchbase in a Docker container, you should check out our documentation.


Posted by Laurent Doguin, Developer Advocate, Couchbase

Laurent is a Paris based Developer Advocate where he focuses on helping Java developers and the French community. He writes code in Java and blog posts in Markdown. Prior to joining Couchbase he was Nuxeo’s community liaison where he devoted his time and expertise to helping the entire Nuxeo Community become more active and efficient.

Leave a reply