busybox
Estimated reading time: 3 minutesBusybox base image.
GitHub repo: https://github.com/docker-library/busybox
Library reference
This content is imported from the official Docker Library docs, and is provided by the original uploader. You can view the Docker Hub page for this image at https://hub.docker.com/images/busybox
Supported tags and respective Dockerfile
links
1.30.1-uclibc
,1.30-uclibc
,1-uclibc
,uclibc
(uclibc/Dockerfile)1.30.1-glibc
,1.30-glibc
,1-glibc
,glibc
(glibc/Dockerfile)1.30.1-musl
,1.30-musl
,1-musl
,musl
(musl/Dockerfile)1.30.1
,1.30
,1
,latest
(uclibc/Dockerfile)
Quick reference
-
Where to get help:
the Docker Community Forums, the Docker Community Slack, or Stack Overflow -
Where to file issues:
https://github.com/docker-library/busybox/issues -
Maintained by:
the Docker Community -
Supported architectures: (more info)
amd64
,arm32v5
,arm32v6
,arm32v7
,arm64v8
,i386
,ppc64le
,s390x
-
Published image artifact details:
repo-info repo’srepos/busybox/
directory (history)
(image metadata, transfer size, etc) -
Image updates:
official-images PRs with labellibrary/busybox
official-images repo’slibrary/busybox
file (history) -
Source of this description:
docs repo’sbusybox/
directory (history) -
Supported Docker versions:
the latest release (down to 1.6 on a best-effort basis)
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.
How to use this image
Run BusyBox shell
$ docker run -it --rm busybox
This will drop you into an sh
shell to allow you to do what you want inside a BusyBox system.
Create a Dockerfile
for a binary
FROM busybox
COPY ./my-static-binary /my-static-binary
CMD ["/my-static-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 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).
busybox:uclibc
busybox:glibc
- glibc from Debian (which is then included in the image)
busybox:musl
- musl from Alpine (statically compiled)
License
View license information for the software contained in this image.
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).
Some additional license information which was able to be auto-detected might be found in the repo-info
repository’s busybox/
directory.
As for any pre-built image usage, it is the image user’s responsibility to ensure that any use of this image complies with any relevant licenses for all software contained within.