Communityoplossing

Ubuntu of Debian op ZimaOS: waarom een basis-Dockerimage stopt en wanneer je ZVM gebruikt

An October 2025 ZimaOS 1.5.0 thread where a user entered ubuntu:latest into Install a customized app, but the container would not stay running. Community replies explained the difference between a Docker app and a standalone Debian/Ubuntu virtual machine, and suggested ZVM or a proper Compose service.

Typen ubuntu:latest in het veld ‘Een aangepaste app installeren’ van ZimaOS plakken maakt niet automatisch een kleine Ubuntu-server die altijd actief is. De image is een minimale Ubuntu-containerbestandssysteem, geen vooraf geconfigureerde virtuele machine met een volledige opstartreeks, SSH-daemon, servicemanager en achtergrondapplicatie die al actief is.

Dat onderscheid verklaart de broncase uit oktober 2025. De image kon worden opgehaald en er kon een container worden aangemaakt, maar deze bleef niet actief op de manier die de gebruiker verwachtte. De juiste oplossing hangt af van het werkelijke doel: één applicatie in een container uitvoeren, of een compleet algemeen Debian/Ubuntu-besturingssysteem in een VM uitvoeren.

Een Docker-container is geen kleine virtuele machine

Een virtuele machine emuleert een complete computeromgeving en start zijn eigen besturingssysteemstack op. Een container deelt de Linux-kernel van de host en voert een of meer geïsoleerde processen uit in zijn eigen gebruikersruimte.

Het model van Docker draait om het hoofdproces van de container. Als het voorgrondproces afsluit, wordt een losgekoppelde container eveneens afgesloten. Containers worden daarom doorgaans opgebouwd rond een langlopende service, zoals een webserver, database, synchronisatiedaemon of applicatieworker.

Officiële Ubuntu- en Debian-images zijn minimale basisimages

De huidige officiële Ubuntu-image is opgebouwd vanuit Canonicals minimale rootbestandssysteem, en Docker beschrijft deze als een minimale installatie en niet als een complete VM-appliance. De officiële Debian-image gebruikt eveneens een minimale minbase rootbestandssysteem.

Als je er interactief een start met een terminal, voelt het als een kleine Linux-omgeving omdat je een shell krijgt. Wanneer die shell afsluit, is er mogelijk geen resterende voorgrondservice om de container actief te houden.

Raadpleeg de informatie over de onderhouden officiële Ubuntu-basisimage of de informatie over de onderhouden officiële Debian-basisimage voordat je een van beide beschouwt als een kant-en-klare serverappliance.

Waarom ubuntu:latest onmiddellijk kan stoppen

ZimaOS verwacht dat een geïnstalleerde Docker-app een betekenisvol langlopend proces heeft. Een kale distributie-image is doorgaans een basis voor een andere image of een interactieve shellomgeving. Als er geen serviceproces is geconfigureerd om als PID 1 actief te blijven, kan de container normaal afsluiten in plaats van te “crashen”.

Controleer het containerlogboek en de afsluitstatus voordat je ervan uitgaat dat ZimaOS de image niet heeft geïnstalleerd. Een afgesloten container zonder geconfigureerde applicatie is een ander probleem dan een service die start en een fout veroorzaakt.

Als je slechts één applicatie nodig hebt, begin dan met de applicatie

De gebruiker verduidelijkte dat die eigenlijk geen volledige VM wilde. Die wilde één applicatie—iDrive—en toegang tot NAS-opslag. In die situatie bestaat het beste Docker-ontwerp doorgaans uit het vinden van een onderhouden image voor de daadwerkelijke applicatie of het bouwen van een kleine image die die applicatie installeert en start.

De container moet alleen de poorten, volumes, aanmeldgegevens en apparaten beschikbaar maken die de applicatie nodig heeft. Persistente bestanden moeten in toegewezen ZimaOS-opslag staan, niet alleen in de vergankelijke containerlaag.

Gebruik Docker Compose voor een echte containerservice

Het antwoord uit de community stelde een volledige Compose-definitie voor in plaats van alleen ubuntu:latest en een containernaam. Het huidige ZimaOS gaat nog verder in die richting: het kan Docker Compose importeren, YAML bewerken en stacks met meerdere containers en lifecyclebeheer uitvoeren.

Volgens de huidige richtlijnen van IceWhale hoort de configuratie van de standaard container-runtime in Docker Compose te staan, terwijl ZimaOS-specifieke store-metadata thuishoort in x-casaos.

Gebruik het huidige ZimaOS Compose-model voor zelfgehoste apps in plaats van een distributie-image-naam te behandelen als een volledige applicatiedefinitie.

NAS-opslag aan de container koppelen

Als de applicatie alleen toegang tot één map nodig heeft, koppel je die echte ZimaOS-map aan de container. De hostzijde moet verwijzen naar een back-up- of gegevensmap op de beoogde opslagpool, terwijl de containerzijde een eenvoudig pad beschikbaar maakt dat de applicatie verwacht.

In het huidige ZimaOS wordt uitgelegd hoe opslag op de host wordt gekoppeld aan containerpaden. Dit is doorgaans lichter dan een volledige Debian-VM draaien om slechts één map te bereiken.

Gebruik ZVM wanneer de software een volledige Linux-machine verwacht

Een VM past beter wanneer het installatieprogramma van de applicatie zaken verwacht zoals:

  • een conventionele pakketbeheerder en een aanpasbaar systeembestandssysteem;
  • systemd of meerdere services op besturingssysteemniveau;
  • gedrag op kernelniveau dat niet veilig via een container kan worden aangeboden;
  • een traditionele, via SSH beheerde Linux-serveromgeving;
  • software van een leverancier die Ubuntu-/Debian-installaties expliciet ondersteunt, maar niet Docker.

Dat sluit aan bij het eerste communityantwoord: als het doel een zelfstandig Debian- of Ubuntu-besturingssysteem is, gebruik dan ZVM in plaats van een basiscontainerimage te dwingen zich als een volledige VM te gedragen.

Installeer de app niet in plaats daarvan in het ZimaOS-rootbestandssysteem

Overstappen van ‘Ubuntu-container sluit af’ naar ‘ik installeer de software met apt op ZimaOS zelf’ is doorgaans de verkeerde richting. Het huidige ZimaOS houdt de meeste systeemmappen bewust alleen-lezen en is geen algemene Debian-/Ubuntu-host met apt als het normale model voor applicatiebeheer.

Containers en VM's bestaan juist zodat afhankelijkheden van applicaties gescheiden kunnen blijven van het ZimaOS-basissysteem.

Wanneer een Debian-/Ubuntu-basisimage nog steeds nuttig is

Er zijn geldige redenen om te bouwen vanuit ubuntu of debian: de doelsoftware publiceert mogelijk alleen installatie-instructies voor die distributies, of je hebt hun pakketbronnen nodig tijdens het bouwen van de image.

Maak in dat geval een Dockerfile of een door Compose ondersteunde image die de applicatie installeert en een echt proces op de voorgrond definieert. Vertrouw niet op het handmatig openen van een shell, interactief installeren van pakketten en hopen dat de gewijzigde container een duurzame app wordt. Bij het opnieuw aanmaken van de container kunnen wijzigingen verloren gaan die niet in de image zijn ingebakken of in persistente volumes zijn opgeslagen.

Een herstartbeleid vervangt geen ontbrekend hoofdproces

Herstartbeleid voor Docker is nuttig voor een echte service die na een herstart of onverwachte afsluiting weer actief moet worden. Ze veranderen een anders voltooide shellsessie niet in een applicatieserver. Als het beoogde werk van de container al voltooid is, zorgt herhaaldelijk herstarten alleen voor een lus.

Kies de kleinst mogelijke isolatielaag die bij de software past

  • De app heeft al een onderhouden Docker-image: gebruik die image.
  • De app kan worden verpakt met Ubuntu-/Debian-afhankelijkheden: bouw een goede applicatiecontainer.
  • De app heeft een volledige conventionele Linux-host nodig: gebruik ZVM.
  • Je hebt alleen toegang tot opslag nodig: koppel de vereiste NAS-mappen in plaats van de volledige schijf te virtualiseren.

Veelgestelde vragen over Ubuntu en Debian op ZimaOS

Waarom wordt ubuntu:latest wel geïnstalleerd, maar blijft het niet actief?

Een basisdistributie-image is niet automatisch een service die continu actief blijft. Een Docker-container heeft een hoofdproces nodig dat actief blijft.

Is ubuntu:latest een volledige virtuele Ubuntu-machine?

Nee. Het is een minimale container-userspace die de kernel van de host deelt.

Moet ik ZVM voor elke Linux-applicatie gebruiken?

Nee. Een echte Docker-applicatie is doorgaans lichter en eenvoudiger te beheren wanneer de software containers ondersteunt.

Wanneer is ZVM de betere keuze?

Gebruik een VM wanneer de software een traditionele, wijzigbare Ubuntu-/Debian-server met systeemservices of installatieaannames verwacht die niet bij een container passen.