Matched between Docker container and Linux host?

Docker container can be hosted on Linux boxes, but I’d like to make certain what kind of container can sit on the specific host from the matrix below:

                   kernel-version distro-type parity-check

host               x              y

container-type-A   x              y           ok
               B   < x            y           ok
               C   > x            y           ?
               D   x              z           ?
               E   < x            z           ?
               F   > x            z           ?

I could reason to conclude the parity for type-A and B, but how about the rest?

  • Docker container isolation, does it care about underlying Linux OS?
  • Docker: user change in terminal prompt
  • Relative path not working with named volumes in the docker-compose.yml
  • Monitoring node processes within docker containers
  • Docker Compose env_file in Multicontainer Elastic Beanstalk
  • Cannot connect to remote SQL Server instance from app in container
  • (I know the container shares the host kernel, and container base images are essentially file systems extracted from distros or even self created.)

  • Can't connect container docker from Macos
  • Python - tlsv1 alert protocol version error in Docker client connection
  • Cannot delete files on docker host
  • docker-py: attach to network before starting the container
  • how do I resolve docker issues with ice login?
  • Fig Python 3 Compatible?
  • 2 Solutions collect form web for “Matched between Docker container and Linux host?”

    The container doesn’t see or care about the distro on the host, so that whole column is irrelevant.

    If the application in the container requires a feature from the kernel that isn’t on the kernel you are running, then ‘n’, otherwise ‘y’.

    All containers running on a host actually are using kernel of underlying host. So the kernel of container doesn’t matter in most of cases (it may matter in cases where you are relying on some specific behavior of kernel. See example #2)

    Example #1:
    HOST OS : Ubuntu 14.04.1 (kernel 3.13.0-45)
    Container image :say CentOS 5.11, RHEL 5.11 (which houses kernel 2.6.18-398)

    Any process executed in the container (of CentOS 5.11) will actually be run in context of underlying kernel 3.13.0-45 !

    There is no separate OS/kernel running for Container (in above case kernel 2.6.18-398 doesn’t run at all).

    This is actually the reason your container boots instantly (it doesn’t run any additional kernel.) The process is spawned in context of underlying kernel and can be seen in top command run on host OS.

    Example (#2) : a case where the container will most probably not work:
    You are trying to use some specific kernel modules in container that are not available in underlying kernel !

    Docker will be the best open platform for developers and sysadmins to build, ship, and run distributed applications.