Best OS for my specific use-case.

September 15, 2019 363 views
CoreOS Docker

Hi guys!

Right now I’m running several Ubuntu droplets specifically for running docker containers.
I really like the idea of CoreOS, a minimal OS designed for running Docker containers, but I’m not sure if it is meant to be used the way I want to use it.
For example, docker-compose (which all of my projects use) is not even installed in the base OS, I think CoreOS is more meant to be used with an orchestrating tool like Kubernetes.

What is the best (most secure) OS for my use-case? Am I looking at this all wrong?
Any insights are very much appreciated!

Thanks!

2 Answers

Hello,

This is a really interesting and I guess the correct answer here is that this depends. I would like to write down some of the advantages of CoreOs and RancherOs, because people usually choose to run their dokcer containers on those OS as they are optimized for running docker containers.

CoreOS

CoreOS is a barebones Linux distribution designed to make large multiple-machine deployments, using different software and dependencies, easier to scale and easier to manage. It is built for high availability and security. It is focused on large-scale deployments, mostly targeting enterprises. It comes bundled with a few really interesting tools developed by the CoreOS team, such as etcd, fleet, and flannel. These tools help you get started with a cluster of CoreOS very quickly. They’re also great starting points to get to understand the concepts behind service discovery, resource scheduling, and container networking.

etcd is a distributed key/value store which is designed to have no single point of failure due to its multiple node architecture.

If you care about high availability at all, deploying using CoreOS is one of the best ways to achieve that with a relatively low price point. Also lets you serve different versions of software on different machines and update machines without any downtime. Also their open source community is really active so if you run into an issue, probably it will be something that someone else have faced before and it will be easy for you the find the solution.

You can have a look at this article on Digital Ocean website even it’s listed as outdated, as you will receive a general infomration about the OS itself: https://www.digitalocean.com/community/tutorials/an-introduction-to-coreos-system-components

RancherOS

It’s lightweight Container Operating System. They run a system Docker as PID 1 and then launch a container that runs the user Docker for all the user containers. Basically everything in RancherOS is a Docker container.

Their team claim that it’s really simple to run containers at scale in development, test, and production. It comes with Improved Security, Automated OS Configuration by using cloud-init to parse the cloud-config file. It also have up-to-date versions of docker and linux but 24/7 support comes with the enterpirse edition only.

You can have a look at their startup guide: https://rancher.com/docs/os/v1.x/en/quick-start-guide/

You can always use Ubuntu LTS, CentOs and Fedora as well. It is just that the above mentioned are claimed to be optimized for running docker containers. I’ve run docker on both Ubuntu and CentOs and I’ve had no issues running it, but it really depends from your needs and your main goal as well.

You can always try one of those to see if you will find the OS optimized for your needs. The purpose of docker-compose is to function as docker cli but to issue multiple commands much more quickly. If you will need to deploy multiple machines with different software you can always try CoreOS for example as it should be a lot easier to manage it.

Hope this help and feel free to ask any questions as this is a really interesting topic.

Alex

by Justin Ellingwood
CoreOS is an exciting Linux distribution focused on getting clustered environments up and running quickly. By leveraging technologies like Docker containers and service discovery, CoreOS clusters can be easily managed as a single unit. In this guide, we will discuss some of the background technologies that make CoreOS possible.

Hi Alex,

Thanks for answering!
Basically I’m looking for the most secure and easy to use OS for my docker containers.
I’ll also do some reading on RancherOS and orchestrating.
As you said, I might just use Ubuntu or CentOS, but that feels ‘clunky’ as I only really need to run a few Docker containers.
I have this idea that all the processes and services that are running on Ubuntu and CentOS add some attack surface, or is that too paranoid?
I could also start disabling stuff, but to be frank, I don’t want to spend alot of time just setting up a little droplet.

What do you think?

Have another answer? Share your knowledge.