Docker images (including the ubiquitous ubuntu
and debian
images) don’t contain kernels, and containers based on them don’t run kernels; they always share the host kernel. You need to go through special setup to be able to use host devices, regardless of what /dev
special files exist in a container.
You can make an argument that the ubuntu
image has unnecessary components that aren’t used in typical Docker setups (an init system, a DHCP client) that make it closer to a “full OS image”; or you can make an argument that, since ubuntu
doesn’t have its own kernel, it’s “not an OS”. I’m not really sure how “operating system” is defined these days.