- Saved searches
- Use saved searches to filter your results more quickly
- License
- linuxcontainers/alpine
- Name already in use
- Sign In Required
- Launching GitHub Desktop
- Launching GitHub Desktop
- Launching Xcode
- Launching Visual Studio Code
- Latest commit
- Git stats
- Files
- README.md
- About
- Small
- Simple
- Secure
- Alpine Linux : Overview
- General overview
- Distinctive
- Efficient
- Technical overview
- See Also
Saved searches
Use saved searches to filter your results more quickly
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session.
License
linuxcontainers/alpine
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Name already in use
A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Sign In Required
Please sign in to use Codespaces.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching Xcode
If nothing happens, download Xcode and try again.
Launching Visual Studio Code
Your codespace will open once ready.
There was a problem preparing your codespace, please try again.
Latest commit
Git stats
Files
Failed to load latest commit information.
README.md
This Docker Image (linuxcontainers/alpine) is based on the minimal Alpine Linux.
Alpine Version 3.18.0 (Released Nov 22, 2022)
This docker image is the base Alpine Linux. For more info on versions & support see Releases
Alpine Linux is a Linux distribution built around musl libc and BusyBox. The image is only 10 MB in size and has access to a package repository that is much more complete than other BusyBox based images. 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.
Alpine has the following platforms available:
- linux/386
- linux/amd64
- linux/arm/v6
- linux/arm/v7
- linux/arm64
- linux/ppc64le
- linux/s390x
Source Repository and Builds
The source repository is maintained on GitHub. The images are built on Github and pushed to Docker Hub, as well as the Github Container Registry using Github Actions.
Docker Tags and Versioning Scheme
Each image pushed to Docker Hub and the Github Container Registry is tagged as follows:
- The tag latest indicates, well, the latest image.
- Tags of the form MAJOR.MINOR.PATCH (such as 3.17.0) indicate the SemVer of the Alpine image used as the base.
- Tags of the form MAJOR.MINOR (e.g., 3.13) correspond to the most recent patch level of the Alpine image used as the base. For example, if 3.17.0 is the latest release, then 3.13 maps to this as well.
- Tags of the form MAJOR (e.g., 3) correspond to the most recent patch level of the Alpine image used as the base, with major corresponding major version. For example, if 3.17.0 is the latest release, then 3 maps to this as well.
Semantic Versioning uses version numbers of the form: MAJOR.MINOR.PATCH, where differences in MAJOR correspond to incompatible changes, differences in MINOR correspond to introduction of backwards compatible new functionality, and PATCH corresponds to backwards compatible bug fixes.
The pre-built image is hosted on both Docker Hub and the Github Container Registry. You can use it in the following ways.
Pull the latest image from Docker Hub with the following (replace latest with a specific version number if you prefer):
docker pull linuxcontainers/alpine:latest
Pull from the Github Container Registry with:
docker pull ghcr.io/linuxcontainers/alpine:latest
Use as a base image in a Dockerfile
Use as a base image in a Dockerfile (replace latest with a specific version number if you prefer):
FROM linuxcontainers/alpine:latest # The rest of your Dockerfile would go here.
Or you can use as a base image (via the Github Container Registry) with:
FROM ghcr.io/linuxcontainers/alpine:latest # The rest of your Dockerfile would go here.
A specific example usage can be found in the Dockerfile of the generate-sitemap Github action.
About
Alpine Linux is an independent, non-commercial, general purpose Linux distribution designed for power users who appreciate security, simplicity and resource efficiency.
Small
Alpine Linux is built around musl libc and busybox. This makes it small and very resource efficient. A container requires no more than 8 MB and a minimal installation to disk requires around 130 MB of storage. Not only do you get a fully-fledged Linux environment but a large selection of packages from the repository.
Binary packages are thinned out and split, giving you even more control over what you install, which in turn keeps your environment as small and efficient as possible.
Simple
Alpine Linux is a very simple distribution that will try to stay out of your way. It uses its own package manager called apk, the OpenRC init system, script driven set-ups and that’s it! This provides you with a simple, crystal-clear Linux environment without all the noise. You can then add on top of that just the packages you need for your project, so whether it’s building a home PVR, or an iSCSI storage controller, a wafer-thin mail server container, or a rock-solid embedded switch, nothing else will get in the way.
Secure
Alpine Linux was designed with security in mind. All userland binaries are compiled as Position Independent Executables (PIE) with stack smashing protection. These proactive security features prevent exploitation of entire classes of zero-day and other vulnerabilities.
Alpine Linux : Overview
Alpine uses musl as its libc, and BusyBox as core utilities. These choices tend to make Alpine especially minimalist and secure.
General overview
Alpine Linux has one of the fastest boot times of any operating system.
It’s famous because of its small size and it’s heavily used in containers.
It’s also well known for wide use in embedded devices and as a base system for many enterprise routers.
The postmarketOS project, which is designed to run on mobile devices, is based on Alpine Linux.
Distinctive
Alpine Linux follows the principles of the SSS distro: Simple+Small+Secure: due to usage of muslc as the minimalist libc, BusyBox simple coreutils (with possibilities to alternate on inflated original packages of each coreutils tools also) and userland binaries compiled as Position Independent Executables (PIE) with stack smashing protection.
Efficient
- Usage of musl as the minimalist libc
- Its own package manager called apk,
- The Secure
All userland binaries are compiled as Position Independent Executables (PIE) with stack smashing protection.
Technical overview
- The OS design Alpine uses Linux as OS kernel, and has a focus on SSS distribution, Simple Small and Secure A variety of architectures are officially supports:
- x86_64: The popular AMD64 compatible 64-bit x86 based machines, i386 are not recommended for newer/latest hardware.
- x86: (i386 pc 32bit) and x86_64 (i686 pc 64bit and amd64)
- armhf: The newer ARM hard-float for newer, more powerful 32-bit devices alongside 64-bit
- armv7: The 32-bit ARM only execution state of the ARMv7 devices machines.
- aarch64: The 64-bit ARM only execution state of the ARMv8 device machines.
- ppc64le: For 64-bit PowerPC devices with pure little-endian mode, mostly for POWER8 and POWER9.
- s390x: For IBM Z mainframes, especially IBM Z and IBM LinuxONE.
Alpine can be installed to a hard disk/SSD/other storage medium like any other distro; (sys mode). The storage medium in question can be any block device (USB, Flash, SDD, HDD). Always in start, the base Alpine system and all your changes will be unpacked into a memory-based filesystem. If run some install script process (data mode) will keep your setup on a hard disk/SSD/other storage medium, rather than unpacking into memory. The default setup here is to store your /var partition directly on the hard storage medium. But as in the diskless mode, your root system still comes from a static ISO image.
What Alpine borrows from Gentoo and FreeBSD is a tree of all the package-building scripts. It is called the Aports tree, and is kept as a single git repository. (Compare Gentoo’s «Portage» and FreeBSD’s «ports». Something similar can be set up with Arch’s «abs», but it’s not as tightly integrated with their package manager and build utilities.)
If you’re only planning to install packages on a given system, and not do any development there, then the only pieces of this you’ll need are Developer Documentation.