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?

  • How to allow multiple '--insecure-registry' for docker registry
  • Friendly URL between docker containers/images
  • Where to keep Dockerfile's in a project?
  • Running windows containers and linux with the same docker client [closed]
  • docker python SDK - pipe output to a file in exec_run
  • Dockerfile vim installation does not work
  • (I know the container shares the host kernel, and container base images are essentially file systems extracted from distros or even self created.)

  • Set hostname of service container to host's hostname
  • Docker-compose makes system freeze with chrome open [Ubuntu 16.04]
  • DistributionNotFound when running pserve with docker-compose
  • How to get a fulfilled MySQL database in Travis
  • What's the difference between RUN and CMD in a docker file and when should I use one or the other?
  • Does using a Docker significantly improve the IO and processing speed?
  • 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.