
Find the line that says " FROM scratch…" 1 and change it to " FROM ubuntu:latest" or similar, then rebuild it. When you do run across this type of container, it is likely that a one-line change to the Dockerfile will convert it to run atop a more full-featured Linux base. The benefit of doing all that hard work is that the result is smaller and has fewer breakable pieces. The only reason you don't encounter such containers more often is simply that it takes more work to produce them. For many services, they're the ideal expression of the developer's intent. While such containers are uncommon, they aren't exactly rare.

Whereas a virtual machine won't boot without an operating system, a container might have as little as a single static binary inside, able to do nothing but start that one program when you start the container. "Hey, look, you can install Ubuntu in a container!" While it is true that you can do that, to stop thinking about the matter at that level will lead you into conceptual errors when you apply that thinking to containers more broadly.

I've run across a lot of people who think of Linux containers as nothing more than kernel-less VMs.
