What is BusyBox? The Swiss Army Knife of Embedded Linux

Coming in somewhere between 1 and 5 Mb in on-disk size (depending on the variant), BusyBox is a very good ingredient to craft space-efficient distributions.

BusyBox combines tiny versions of many common UNIX utilities into a single small executable. It provides replacements for most of the utilities you usually find in GNU fileutils, shellutils, etc. The utilities in BusyBox generally have fewer options than their full-featured GNU cousins; however, the options that are included provide the expected functionality and behave very much like their GNU counterparts. BusyBox provides a fairly complete environment for any small or embedded system.

Create a Dockerfile for a binary

This Dockerfile will allow you to create a minimal image for your statically compiled binary. You will have to compile the binary in some other place like another container. For a simpler alternative that's similarly tiny but easier to extend, see alpine.

Image Variants

The i386/busybox images contain BusyBox built against various "libc" variants (for a comparison of "libc" variants, Eta Labs has a very nice chart which lists many similarities and differences).

For more information about the specific particulars of the build process for each variant, see Dockerfile.builder in the same directory as each variant's Dockerfile (see links above).

i386/busybox:glibc

i386/busybox:musl

License

As with all Docker images, these likely also contain other software which may be under other licenses (such as Bash, etc from the base distribution, along with any direct or indirect dependencies of the primary software being contained).