Saisir ubuntu:latest dans le champ « Installer une application personnalisée » de ZimaOS ne crée pas automatiquement un petit serveur Ubuntu toujours actif. L’image est un système de fichiers de conteneur Ubuntu minimal, et non une machine virtuelle préconfigurée avec une séquence de démarrage complète, un démon SSH, un gestionnaire de services et une application en arrière-plan déjà active.
Cette distinction explique le cas source d’octobre 2025. L’image pouvait être téléchargée et un conteneur pouvait être créé, mais il ne restait pas actif comme l’utilisateur s’y attendait. La solution appropriée dépend de l’objectif réel : exécuter une seule application dans un conteneur, ou exécuter un système d’exploitation Debian/Ubuntu généraliste complet dans une machine virtuelle.
Un conteneur Docker n’est pas une petite machine virtuelle
Une machine virtuelle émule un environnement informatique complet et démarre sa propre pile de système d’exploitation. Un conteneur partage le noyau Linux de l’hôte et exécute un ou plusieurs processus isolés dans son propre espace utilisateur.
Le modèle de Docker repose sur le processus principal du conteneur. Si le processus au premier plan se termine, un conteneur exécuté en arrière-plan se termine également. Les conteneurs sont donc généralement conçus autour d’un service persistant, tel qu’un serveur web, une base de données, un démon de synchronisation ou un processus de traitement applicatif.
Les images officielles Ubuntu et Debian sont des images de base minimales
L’image officielle Ubuntu actuelle est construite à partir du système de fichiers racine minimal de Canonical, et Docker la décrit comme une installation minimale plutôt que comme une appliance de machine virtuelle complète. L’image officielle Debian utilise elle aussi un système minimal minbase système de fichiers racine.
Si vous en démarrez une de manière interactive avec un terminal, elle ressemble à un petit environnement Linux parce que vous disposez d’un shell. Lorsque ce shell se ferme, il peut ne rester aucun service au premier plan pour maintenir le conteneur actif.
Consultez les informations sur l’image de base officielle Ubuntu maintenue ou les informations sur l’image de base officielle Debian maintenue avant de considérer l’une ou l’autre comme une appliance serveur préconfigurée.
Pourquoi ubuntu:latest peut s’arrêter immédiatement
ZimaOS attend d’une application Docker installée qu’elle dispose d’un processus persistant pertinent. Une image de distribution brute sert généralement de base à une autre image ou d’environnement de shell interactif. Si aucun processus de service n’est configuré pour rester en tant que PID 1, le conteneur peut se terminer normalement plutôt que « planter ».
Vérifiez le journal du conteneur et son état d’arrêt avant de supposer que ZimaOS n’a pas réussi à installer l’image. Un conteneur arrêté sans aucune application configurée correspond à un problème différent d’un service qui démarre puis génère une erreur.
Si vous n’avez besoin que d’une seule application, commencez par l’application
L’utilisateur source a précisé qu’il ne souhaitait pas vraiment une machine virtuelle complète. Il voulait une seule application — iDrive — et un accès au stockage NAS. Dans ce cas, la meilleure conception Docker consiste généralement à trouver une image maintenue pour l’application concernée ou à créer une petite image qui installe et lance cette application.
Le conteneur ne doit exposer que les ports, volumes, identifiants et périphériques dont l’application a besoin. Les fichiers persistants doivent résider dans un stockage ZimaOS mappé, et non uniquement dans la couche de conteneur éphémère.
Utilisez Docker Compose pour un véritable service conteneurisé
La réponse de la communauté suggérait une définition Compose complète plutôt que de saisir uniquement ubuntu:latest et un nom de conteneur. La version actuelle de ZimaOS va encore plus loin dans cette direction : elle peut importer des fichiers Docker Compose, modifier des fichiers YAML et exécuter des ensembles multi-conteneurs avec un contrôle du cycle de vie.
Les recommandations actuelles d’IceWhale indiquent que la configuration standard de l’environnement d’exécution des conteneurs doit figurer dans Docker Compose, tandis que les métadonnées propres à la boutique ZimaOS doivent figurer dans x-casaos.
Utilisez le modèle Compose actuel de ZimaOS pour les applications auto-hébergées plutôt que de considérer le nom d’une image de distribution comme une définition complète d’application.
Mapper le stockage NAS dans le conteneur
Si l’application a seulement besoin d’accéder à un dossier, mappez ce dossier réel de ZimaOS dans le conteneur. Le côté hôte doit pointer vers un dossier de sauvegarde ou de données situé dans le pool de stockage prévu, tandis que le côté conteneur expose le chemin simple attendu par l’application.
La documentation actuelle de ZimaOS explique comment le stockage de l’hôte est mappé vers les chemins des conteneurs. Cette solution est généralement plus légère que l’exécution d’une machine virtuelle Debian complète simplement pour accéder à un dossier.
Utilisez ZVM lorsque le logiciel attend une machine Linux complète
Une machine virtuelle est mieux adaptée lorsque l’installateur de l’application attend des éléments tels que :
- un gestionnaire de paquets conventionnel et un système de fichiers système modifiable ;
- systemd ou plusieurs services au niveau du système d’exploitation ;
- un comportement au niveau du noyau qui ne peut pas être fourni de manière sûre par un conteneur ;
- un environnement de serveur Linux traditionnel administré via SSH ;
- un logiciel d’un fournisseur qui prend explicitement en charge les installations Ubuntu/Debian, mais pas Docker.
Cela correspond à la première réponse de la communauté : si l’objectif est d’obtenir un système d’exploitation Debian ou Ubuntu autonome, utilisez ZVM plutôt que de forcer une image de conteneur de base à se comporter comme une VM complète.
N’installez pas l’application dans le système de fichiers racine de ZimaOS
Passer de « le conteneur Ubuntu se ferme » à « je vais installer le logiciel avec apt directement sur ZimaOS » est généralement une mauvaise direction. Le ZimaOS actuel conserve par conception la plupart des dossiers système en lecture seule et n’est pas un hôte Debian/Ubuntu général doté de apt comme modèle normal de gestion des applications.
Les conteneurs et les VM existent précisément pour que les dépendances des applications restent séparées du système de base de ZimaOS.
Lorsqu’une image de base Debian/Ubuntu reste utile
Il existe des raisons légitimes de créer une image à partir de ubuntu ou debian: le logiciel cible peut publier des instructions d’installation uniquement pour ces distributions, ou vous pouvez avoir besoin de leurs dépôts de paquets lors de la création de l’image.
Dans ce cas, créez un Dockerfile ou une image basée sur Compose qui installe l’application et définit une véritable commande exécutée au premier plan. Ne comptez pas sur l’ouverture manuelle d’un shell, l’installation interactive de paquets et l’espoir que le conteneur modifié devienne une application durable. La recréation du conteneur peut supprimer les modifications qui n’ont pas été intégrées à l’image ou stockées dans des volumes persistants.
Une politique de redémarrage ne remplace pas l’absence de processus principal
Les politiques de redémarrage Docker sont utiles pour un véritable service qui doit redémarrer après un redémarrage ou une fermeture inattendue. Elles ne transforment pas une session shell autrement terminée en serveur d’applications. Si le travail prévu du conteneur est déjà terminé, le redémarrer continuellement ne fait que créer une boucle.
Choisissez la couche d’isolation la plus petite adaptée au logiciel
- L’application dispose déjà d’une image Docker maintenue : utilisez cette image.
- L’application peut être empaquetée à partir de dépendances Ubuntu/Debian : créez un conteneur d’application approprié.
- L’application a besoin d’un hôte Linux conventionnel complet : utilisez ZVM.
- Vous avez uniquement besoin d’un accès au stockage : mappez les dossiers NAS requis au lieu de virtualiser l’intégralité du disque.
FAQ sur Ubuntu et Debian sur ZimaOS
Pourquoi ubuntu:latest s’installe-t-il, mais ne reste-t-il pas actif ?
Une image de distribution de base ne constitue pas automatiquement un service fonctionnant en permanence. Un conteneur Docker a besoin d’un processus principal qui reste actif.
ubuntu:latest est-il une machine virtuelle Ubuntu complète ?
Non. Il s’agit d’un espace utilisateur de conteneur minimal qui partage le noyau de l’hôte.
Dois-je utiliser ZVM pour chaque application Linux ?
Non. Une véritable application Docker est généralement plus légère et plus facile à gérer lorsque le logiciel prend en charge les conteneurs.
Quand ZVM est-il le meilleur choix ?
Utilisez une VM lorsque le logiciel attend un serveur Ubuntu/Debian traditionnel et modifiable, avec des services au niveau du système ou des exigences d’installation incompatibles avec un conteneur.
