What is the relationship between the docker host OS and the container base image OS?

Docker

Docker Problem Overview


I'm not certain that I'm asking the right question... but while I have been reading everything docker that I can get my hands on I see that I can install Docker on Ubuntu 12.04 (for example) and then I can install a Fedora container or a different version of ubuntu? (there is an example where the user installed busybox in the container.)

And of course I could be completely wrong.

But it would be my expectation that there was a ephemeral connection between the base system and the container.

restated: what is the relationship between the host OS and the container base image's OS?

Docker Solutions


Solution 1 - Docker

As mentioned by BraveNewCurrency, the only relationship between the host OS and the container is the Kernel.

It is one of the main difference between docker and 'regular' virtual machines, there is no overhead, everything takes place directly within the host's kernel.

This is why you can run only Linux based distribution/binaries within the container. If you want to run something else, it is not impossible, but you would need some kind of virtualization within the container (qemu, kvm, etc.)

Docker manage images that are the file system representation. You can install any linux distribution or simply put binaries.

Indeed, for the convenience of the example, we often rely on the base images, but you could also create your image without any of the distribution libraries/binaries. That way you would have a really tiny yet functional container.

One more point regarding the distributions: as the kernel is still the kernel of the host, you will not have any specific kernel module/patches provided by the distribution.

Solution 2 - Docker

Literally, the only thing they have in common is the kernel. Their whole world (file system) is in the docker container.

Solution 3 - Docker

There is another consideration - even if the both kernels are the same, there is a problem if the host OS does not support Docker, like RHEL 6: https://access.redhat.com/solutions/1378023

So you won't be able to spin up a container on RHEL 6, even if the image is a Linux one.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionRichardView Question on Stackoverflow
Solution 1 - DockercreackView Answer on Stackoverflow
Solution 2 - DockerBraveNewCurrencyView Answer on Stackoverflow
Solution 3 - Dockerflow2kView Answer on Stackoverflow