Alpine Linux

Aperçu

Alpine Linux est une distribution Linux orientée sécurité et légère basée sur musl libc et BusyBox. Première version en 2006 par Nathaniel McConnel, elle est conçue pour la sécurité, la simplicité et l’efficacité des ressources.

Alpine est surtout connu comme l’image de base par défaut pour les conteneurs Docker et est largement utilisé dans les environnements cloud-native où une surface d’attaque minimale et un démarrage rapide sont essentiels.

Fonctionnalités clés

  • musl libc : Une bibliothèque C légère et conforme aux normes (alternative à glibc).
  • BusyBox : Un binaire unique fournissant de nombreux utilitaires Unix courants, réduisant l’empreinte.
  • apk (Alpine Package Keeper) : Gestionnaire de paquets rapide et simple avec signature cryptographique.
  • Faible empreinte : L’image de base minimale est d’environ 5 Mo ; une image de conteneur typique est de 5 à 8 Mo contre 200+ Mo pour Debian/Ubuntu.
  • Durcissement de la sécurité : PIE (Position Independent Executable), stack protector, noexec, full RELRO.
  • OpenRC : Système de gestion des services (alternative à systemd).
  • Slate : Une variante durcie orientée sécurité avec les correctifs grsecurity/PaX.

Licence

Licence MIT (principale), avec diverses licences pour les paquets individuels (BSD, GPL, etc.).

Faits notables

  • Alpine est l’image de base par défaut des images officielles Docker Hub et des images officielles basées sur Alpine.
  • L’image alpine est l’image Docker la plus téléchargée sur Docker Hub.
  • L’utilisation de musl libc par Alpine peut causer des problèmes de compatibilité avec les binaires compilés contre glibc.
  • Le projet est communautaire sans soutien corporatif.

Cas d’utilisation

  • Images de base pour Docker/conteneurs
  • Systèmes Linux embarqués
  • Appareils de calcul en périphérie (edge computing)
  • Déploiements soucieux de la sécurité
  • Exécuteurs de pipelines CI/CD

Technologies liées

  • Docker
  • Podman — suite d’utilitaires utilisée par Alpine
  • musl libc — bibliothèque C utilisée par Alpine
  • Openbsd