It was the easiest to get set up, it uses mimimal resources out of the box, and being rolling release I am usually running a very recent version of Docker. Personally, I like using the latest Ubuntu LTS with the latest kernel available for it.Īrch Linux.
It really just boils down to what you are used to and what you prefer, or what your company already has in place. The container community as a whole, of course, has several container-specific options: coreos, project atomic, rancher, and probably a bunch of others that I am forgetting about. There's also definitely some ubuntu, suse, and debian in the mix too. In practice, I see a lot of RHEL/centos for lots of larger companies since that's what they're used to. If your application is a statically compiled binary, you can get away with dropping it into a blank image since there are zero dependencies.ĮDIT: you said in other comments you meant the host OS so I'll answer that belowįor the host, you can pretty much use any modern kernel that meets the version requirements and has the necessary features enabled. It's honestly pretty common to see a very wide variety of base images. Most official images use a debian base, but there are several of those that have variants that use an alpine base.
That's why it's fairly common to see base images based on debian, centos, etc. Package managers and their corresponding repositories provide a fantastic dependency management framework. The only thing that needs to be inside the container's filesystem 'your application and all the dependencies that you need.įortunately, dependency management is largely a solved problem. There's no bios and no boot loader and no kernel.Ī containerized process is just another process that your host kernel runs.
Containers are really just a fancy way to run a process.īecause of that, you don't really need a full operating system.