Installer Alpine Linux sur une VM Proxmox VE pour héberger Docker et Docker Compose

Dans un environnement de virtualisation, chaque ressource compte. Lorsque l’objectif est simplement d’héberger des conteneurs, déployer une distribution Linux classique peut rapidement devenir surdimensionné.

C’est là qu’intervient Alpine Linux. Minimaliste, rapide et extrêmement légère, cette distribution est parfaitement adaptée pour créer une machine virtuelle dédiée à l’exécution de Docker et Docker Compose.

Dans ce tutoriel, nous allons voir comment installer Alpine Linux sur une VM Proxmox VE, puis configurer un environnement Docker fonctionnel. L’objectif est simple : mettre en place une VM optimisée, consommant très peu de ressources, tout en restant parfaitement adaptée à un usage en production ou en lab.

Une approche idéale si vous souhaitez multiplier les hôtes Docker sans alourdir votre infrastructure.

Présentation de Alpine Linux

Alpine Linux est une distribution Linux pensée dès le départ pour être minimaliste, rapide et sécurisée. Contrairement aux distributions plus généralistes, elle ne cherche pas à embarquer un maximum de composants par défaut, mais plutôt à fournir une base propre et extrêmement légère que l’on va enrichir uniquement selon ses besoins. Cette approche la rend particulièrement adaptée aux environnements virtualisés ou aux usages spécifiques comme l’hébergement de conteneurs.

L’un des points les plus marquants d’Alpine est la taille de son image. Là où certaines distributions nécessitent plusieurs centaines de mégaoctets, Alpine se contente de quelques mégaoctets seulement. Cette légèreté se traduit directement par un démarrage rapide, une faible consommation de ressources et une excellente densité de virtualisation. Dans un contexte comme une VM dédiée à Docker, cela permet de maximiser l’utilisation des ressources tout en gardant un système réactif.

Cette philosophie minimaliste explique aussi pourquoi Alpine est très utilisée comme base dans les images Docker. Elle permet de construire des images beaucoup plus petites, plus rapides à déployer et avec une surface d’attaque réduite. Dans les pipelines CI/CD modernes, elle est devenue une référence pour optimiser les temps de build et de déploiement.

Techniquement, Alpine repose en grande partie sur BusyBox, qui regroupe de nombreuses commandes Unix essentielles dans un seul binaire. Ce choix permet de réduire drastiquement le nombre de dépendances et la taille globale du système, tout en conservant les outils indispensables pour administrer la machine. C’est un compromis intelligent entre fonctionnalité et légèreté.

Pour la gestion des paquets, Alpine utilise APK package manager, un outil simple, rapide et efficace. Il permet d’installer uniquement ce dont on a besoin, sans alourdir inutilement le système. Cette maîtrise des dépendances contribue à garder un environnement propre et optimisé dans le temps.

Enfin, Alpine intègre nativement plusieurs choix orientés sécurité, comme l’utilisation de musl libc à la place de glibc ou encore des options de compilation renforcées. Combiné à sa simplicité, cela en fait une excellente base pour des environnements exposés ou critiques.

En résumé, Alpine Linux s’impose comme une solution idéale dès que l’on cherche à construire un système léger, maîtrisé et performant, notamment pour servir de base à un hôte Docker sur une plateforme comme Proxmox VE.

Télécharger Alpine Linux

On va commencer par télécharger Alpine Linux directement depuis l’interface de Proxmox VE. L’image est disponible à l’adresse suivante : https://alpinelinux.org/downloads/.

Sur la page de téléchargement, plusieurs versions sont proposées. Dans notre cas, nous allons choisir l’image dédiée aux environnements virtualisés (VIRTUAL), qui est optimisée pour fonctionner dans une machine virtuelle.

Une fois sur cette section, repérez l’architecture x86_64, puis faites un clic droit dessus afin de copier le lien de téléchargement. Ce lien pourra ensuite être utilisé directement dans Proxmox pour importer l’image sans passer par un téléchargement manuel sur votre poste.

Dans Proxmox, télécharger l’ISO depuis URL. Comme vous pouvez le voir sur la capture, ci-dessous, dès le support d’installation la taille est minimale, seulement 67 MiB !

Créer la machine virtuelle sur ProxmoxVE

Je ne vais pas reprendre tout le dérouler de la création d’une machine virtuelle, vous le trouverez à l’adresse suivante : https://rdr-it.com/proxmox-creer-une-machine-virtuelle/

Dans le choix de l’OS, sélectionner le fichier ISO que l’on vient de télécharger.

Dans la partie système, cocher la case Qemu Agent.

La machine virtuelle est créée et prête à démarrer.

Installer Alpine Linux

Démarrer l’ordinateur et patienter (quelques secondes, pas de le temps pour une café), que Alpine Linux se charge, une fois démarrée, on arrive sur le prompt pour se connecter.

Utiliser le compte root sans mot de passe pour vous connectez.

Pour lancer l’assistant d’installation, entrer la commande : setup-alpine (attention le clavier est en qwerty).

La première étape consiste à configurer la disposition du clavier, dans mon cas, pour le layout je vais choisir fr puis la variante fr-azerty.

Ensuite indiquer le nom de l’ordinateur (hostname) pour moi ça sera vm-alpine-1.

On poursuit ensuite avec la configuration réseau de Alpine Linux. L’assistant va d’abord détecter automatiquement la carte réseau à configurer. Dans la majorité des cas, il suffit simplement d’appuyer sur Entrée pour valider l’interface proposée.

L’étape suivante consiste à définir l’adresse IP de la machine. Il est attendu de la saisir au format CIDR, par exemple 192.168.1.1/24. Vous devrez ensuite renseigner l’adresse de la passerelle (gateway), qui correspond généralement à l’adresse de votre routeur..

L’assistant vous demandera ensuite si vous souhaitez utiliser une configuration automatique. Ici, appuyez de nouveau sur Entrée pour rester sur une configuration manuelle. Vous pourrez ensuite indiquer un nom de domaine si nécessaire, notamment dans un environnement professionnel ou de lab structuré.

Enfin, il ne reste plus qu’à spécifier le serveur DNS à utiliser pour la résolution de noms. Une fois ces informations renseignées, la configuration réseau de base sera opérationnelle.

Configurer le mot de passe du compte root en le saisissant deux fois.

On continue avec la configuration du fuseau horaire (timezone), pour moi ça sera : Europe/Paris.

On peut ensuite avancer vers la configuration du proxy, si votre environnement en nécessite un. Dans le cas contraire, il suffit d’appuyer sur Entrée pour passer cette étape.

Vient ensuite la configuration des miroirs du gestionnaire de paquets APK package manager. Cette étape permet de définir depuis quels serveurs seront téléchargés les paquets.

Pour commencer, l’assistant propose d’activer le dépôt communautaire. Il suffit de saisir c pour activer le dépôt community, qui contient de nombreux paquets supplémentaires très utiles, notamment pour Docker.

Une fois cette option activée, appuyez sur Entrée afin de valider l’URL proposée [1]. Cela permet d’utiliser automatiquement un miroir adapté, sans avoir à le configurer manuellement.

On arrive ensuite à l’étape de configuration des utilisateurs sur Alpine Linux. L’assistant propose de créer un nouvel utilisateur. Dans mon cas, je choisis de conserver uniquement le compte root, il suffit donc d’appuyer sur Entrée pour ne pas créer de nouvel utilisateur.

L’installation du serveur SSH est ensuite proposée. Validez cette étape pour pouvoir administrer la machine à distance. L’assistant vous demandera alors si vous souhaitez autoriser la connexion root avec un mot de passe via SSH. Ici, saisissez yes puis appuyez sur Entrée. Concernant la configuration des clés SSH, vous pouvez simplement appuyer sur Entrée pour passer cette étape si vous ne souhaitez pas en configurer immédiatement.

Bien entendu, cette configuration est à adapter selon vos besoins. Il est tout à fait recommandé de créer un utilisateur dédié et de désactiver l’accès root par mot de passe pour des raisons de sécurité. Dans mon cas, je préfère effectuer ces ajustements après l’installation, une fois le système pleinement opérationnel.

Dernière étape de l’assistant d’installation de Alpine Linux : la configuration du disque.

On commence par sélectionner le disque cible. Dans la plupart des cas, il est proposé automatiquement, par exemple sda. Il suffit alors de valider ce choix en appuyant sur Entrée.

L’assistant demande ensuite le mode de partitionnement. Pour ma part, je choisis LVM, ce qui permet une gestion plus flexible du stockage, notamment si vous souhaitez faire évoluer la taille des volumes par la suite.

Vient ensuite le type d’utilisation du disque. Ici, on sélectionne généralement sys, qui correspond à une installation système classique destinée à héberger un OS complet sur la machine virtuelle.

Enfin, l’installation demande une confirmation finale avant d’écrire les modifications sur le disque. Il suffit de valider en saisissant y, puis en appuyant sur Entrée pour lancer l’installation.

Pour finir, retirer le support d’installation et redémarrer la VM avec la commande reboot.

Une fois redémarrer, on peut se connecter en SSH.

Quelques commandes pour se familiariser

Une fois Alpine Linux installé, il est utile de connaître quelques commandes de base pour gérer le système et les paquets.

Le gestionnaire de paquets utilisé est APK package manager. Il permet de maintenir le système à jour et d’installer facilement des outils supplémentaires.

Pour commencer, il est recommandé de mettre à jour la liste des paquets disponibles :

apk update

Ensuite, vous pouvez mettre à jour l’ensemble du système avec :

apk upgrade

Pour installer un paquet, la commande est très simple :

apk add <paquet>

Par exemple, pour installer des outils de base comme un éditeur de texte ou un moniteur système, vous pouvez utiliser :

apk add nano
apk add htop

La configuration réseau de la machine se trouve généralement dans le fichier :

/etc/network/interfaces

Dans un environnement virtualisé comme Proxmox VE, il est également recommandé d’installer les outils invités QEMU afin d’améliorer l’intégration et les performances de la VM.

Pour cela, installez le paquet suivant :

apk add qemu-guest-agent

Puis activez et démarrez le service :

rc-update add qemu-guest-agent
service qemu-guest-agent start
service qemu-guest-agent status

Ces outils permettent notamment une meilleure communication entre l’hôte et la machine virtuelle, ce qui facilite la gestion et la supervision de la VM.

Installer Docker et Docker Compose sur Alpine Linux

On va commencer avec l’installation des certificats CA :

apk add ca-certificates

Puis mets à jour les certificats :

update-ca-certificates

Pour installer Docker et Docker Compose sur Alpine Linux, il faut passer par les dépôts officiels d’Alpine. Contrairement à des distributions comme Debian ou RHEL, il n’existe pas de dépôt officiel Docker séparé à ajouter manuellement. Cela s’explique notamment par l’utilisation de la bibliothèque musl, qui impose certaines différences de compatibilité par rapport à glibc.

L’installation se fait simplement via le gestionnaire de paquets APK package manager :

apk add docker docker-cli-compose

Une fois Docker installé, il faut activer et démarrer le service. Alpine utilise OpenRC comme système d’initialisation et de gestion des services.

Pour que Docker se lance automatiquement au démarrage de la machine, on l’ajoute au runlevel boot :

rc-update add docker boot

Ensuite, on démarre immédiatement le service :

service docker start

Pour vérifier que tout est correctement installé et fonctionnel, vous pouvez utiliser les commandes suivantes :

docker version
docker compose version

Enfin, pour valider le bon fonctionnement du moteur Docker, vous pouvez exécuter un conteneur de test :

docker run hello-world

À ce stade, votre VM Alpine est prête à fonctionner comme hôte léger pour des conteneurs Docker

Conclusion

Avec Alpine Linux, on obtient une base système extrêmement légère, rapide et parfaitement adaptée à un usage orienté conteneurs. Couplée à Docker et Docker Compose, cette distribution devient une excellente solution pour déployer des environnements isolés, que ce soit en lab, en production ou sur une infrastructure virtualisée comme Proxmox VE.

L’objectif de ce tutoriel était de montrer qu’il est possible de construire une VM très légère, rapide à provisionner et facile à maintenir, tout en conservant de bonnes performances et une grande flexibilité. Alpine s’impose ici comme un choix idéal pour optimiser les ressources serveur, notamment lorsque l’on multiplie les instances Docker.

FAQ

Est-ce qu’Alpine est adaptée pour Docker en production ?

Oui, Alpine est très utilisée pour les environnements conteneurisés. Sa légèreté, sa rapidité et sa faible consommation en ressources en font une excellente base pour des hôtes Docker, notamment en virtualisation.

Pourquoi Alpine est plus légère que d’autres distributions ?

Alpine Linux utilise une approche minimaliste avec des composants réduits, notamment BusyBox et la librairie musl. Cela permet de réduire fortement la taille du système et son empreinte mémoire.

Peut-on utiliser Docker Compose directement avec Alpine ?

Oui. Une fois installé via APK package manager, Docker Compose fonctionne normalement via le plugin intégré (docker compose). Il n’y a pas de configuration supplémentaire particulière à effectuer.

Comment automatiser l’installation d’Alpine ?

Il est possible d’utiliser un fichier de réponse automatique appelé answers file (ou script d’installation Alpine). Ce fichier permet de préconfigurer toutes les étapes de l’installation (réseau, disque, utilisateurs, services, etc.) afin de rendre le déploiement totalement automatisé.

https://docs.alpinelinux.org/user-handbook/0.1a/Installing/setup_alpine.html

Romain Drouche
Romain Drouche
Architecte Système | MCSE: Core Infrastructure
Expert en infrastructures IT avec plus de 15 ans d’expérience sur le terrain. Actuellement Chef de projet Systèmes et Réseaux et Référent SSI (Sécurité des Systèmes d’Information), je mets mon expertise au service de la fiabilité et de la sécurité des environnements technologiques.

Laisser un commentaire