docker-alpine (armhf)
This is a port of the Alpine Linux image for running on armhf (ARMv7+) devices. Only version 3.1 is supported at the moment.
Run the following commands in order to let other images transparently use this as a base image on your armhf device:
docker pull mazzolino/armhf-alpine:3.1
docker tag -f mazzolino/armhf-alpine:3.1 alpine:3.1
docker tag -f mazzolino/armhf-alpine:latest alpine:latest
See the build script on how it is built.
Original description
A super small Docker image based on Alpine Linux. The image is only 5 MB and has access to a package repository that is much more complete than other BusyBox based images.
Why?
Docker images today are big. Usually much larger than they need to be. There are a lot of ways to make them smaller, but the Docker populace still jumps to the ubuntu
base image for most projects. The size savings over ubuntu
and other bases are huge:
REPOSITORY TAG IMAGE ID VIRTUAL SIZE
gliderlabs/alpine latest 157314031a17 5.03 MB
debian latest 4d6ce913b130 84.98 MB
ubuntu latest b39b81afc8ca 188.3 MB
centos latest 8efe422e6104 210 MB
There are images such as progrium/busybox
which get us very close to a minimal container and package system. But these particular BusyBox builds piggyback on the OpenWRT package index which is often lacking and not tailored towards generic everyday applications. Alpine Linux has a much more complete and up to date package index:
$ docker run progrium/busybox opkg-install nodejs
Unknown package 'nodejs'.
Collected errors:
* opkg_install_cmd: Cannot install package nodejs.
$ docker run gliderlabs/alpine apk --update add nodejs
fetch http://dl-4.alpinelinux.org/alpine/v3.2/main/x86_64/APKINDEX.tar.gz
(1/5) Installing c-ares (1.10.0-r1)
(2/5) Installing libgcc (4.8.3-r0)
(3/5) Installing libstdc++ (4.8.3-r0)
(4/5) Installing libuv (0.10.29-r0)
(5/5) Installing nodejs (0.10.33-r0)
Executing busybox-1.22.1-r14.trigger
OK: 21 MiB in 20 packages
This makes Alpine Linux a great image base for utilities and even production applications. Read more about Alpine Linux here and you can see how their mantra fits in right at home with Docker images.
Usage
Stop doing this:
FROM ubuntu-debootstrap:14.04
RUN apt-get update -q \
&& DEBIAN_FRONTEND=noninteractive apt-get install -qy mysql-client \
&& apt-get clean \
&& rm -rf /var/lib/apt
ENTRYPOINT ["mysql"]
This took 19 seconds to build and yields a 164 MB image. Eww. Start doing this:
FROM gliderlabs/alpine:3.2
RUN apk --update add mysql-client
ENTRYPOINT ["mysql"]
Only 3 seconds to build and results in a 16 MB image! Hooray!
Documentation
This image is well documented. Check out the documentation at Viewdocs and the docs
directory in this repository.
Contacts
We make reasonable efforts to support our work and are always happy to chat. Join us in our Slack community or submit a GitHub issue if you have a security or other general question about this Docker image. Please email security or user mailing lists if you have concerns specific to Alpine Linux.
Inspiration
The motivation for this project and modifications to mkimage.sh
are highly inspired by Eivind Uggedal (uggedal) and Luis Lavena (luislavena). They have made great strides in getting Alpine Linux running as a Docker container. Check out their mini-container/base image as well.
Sponsors
Fastly provides the CDN for our Alpine Linux package repository. This is allows super speedy package downloads from all over the globe!
License
The code in this repository, unless otherwise noted, is BSD licensed. See the LICENSE
file in this repository.