March 12, 2017

Container and the Host OS Kernel

Container and the Host OS Kernel


Docker uses the host operating systems' kernel as a base. All containers which run on the host share this kernel. Any required resources not in the host kernel (e.g. binaries, libraries, frameworks, etc.) will be provided by the container's base image and any additional application layers.


If Docker is deployed on top of an Ubuntu Linux OS, containers built on this host will use the Ubuntu kernel.

Examples of other OS kernels deployments include:

    • Boot2docker
      • is a lightweight Linux distribution based on a stripped down Tiny Core Linux
      • developed to run Docker containers
      • Based on a recent Linux kernel (4.4.41 as of Docker 1.12.6) with AUFS storage driver
    • Container Linux
      • formerly CoreOS
      • an open-source lightweight operating system based on the Linux kernel
      •  provides minimal functionality required for deploying applications inside software containers
    • RancherOS
      • an OS made of Containers
      • two types of containers:
        • system containers (running system services)
        • user-level containers (running application services)
    • Windows Kernel

Docker Machine has default base operating systems for both local and remote providers. For local providers such as VirtualBox, Fusion, Hyper-V, etc., the default base operating system is Boot2Docker. For cloud providers, the base operating system is the latest Ubuntu LTS the provider supports.

Operating System Version Notes
Boot2Docker 1.5+ default for local
Ubuntu 12.04+ default for remote
RancherOS 0.3+
Debian 8.0+ experimental
RedHat Enterprise Linux 7.0+ experimental
CentOS 7+ experimental
Fedora 21+ experimental

The default base operating systems: Boot2docker, Ubuntu, CoreOS, etc. are bare bones Linux OS; just enough functionality to create a runtime environment (e.g. non-essential files, such as man pages are not included).

References:

No comments:

Post a Comment