Verbruik
Bij mij scheelde het ca 2W idle toen ik overging van VM's naar docker containers. Die 2W is dan zuiver de overhead van de VM, dus hierin zaten al geen draaiende applicaties.
Onder Ubuntu server zie ik met een draaiende standaard docker / docker-compose installatie een CPU verbruik van onder de 1 procent.
Als de docker containers op zuinigheid staan ingesteld (dus geen health-check, of één met een redelijk groot interval), dan zie ik met ca 20-30 containers een idle verbruik van 2-3% CPU.
Geheugengebruik
Hier heb ik het allergrootste verschil gezien tussen een aantal VM's en een berg docker containers: 3VM's met Ubuntu gebruikten totaal 13GB RAM. De losse containers doen het nu met 2-4GB
Mijn server wordt 21 Juni 10 jaar, heeft 16GB RAM en stond een paar jaar geleden al op de nominatie om vervangen te worden omdat er niet meer RAM bij kan. Sinds de overgang naar docker heeft deze dus gewoon zat RAM en kan nog wel ff door zolang de hardware het volhoudt.
Veiligheid / Docker
Als je wat meer veiligheid wil dan kun je docker ook root-less draaien. Maar in dat geval mag je wel zelf aan het werk om de verschillende autorisaties te regelen voor I/O poorten (USB), mappen, netwerkinterfaces en poortnummers onder de 1000. Een aardig aantal dingen doet het ook niet meer, waaronder AppArmor, netwerk overlays en SCTP poorten.
Zomaar een compose file van het internet rukken en starten is er dan niet meer bij
Apps
Draai je docker als root (standaard dus), dan kun je ook
fail2ban als docker container draaien en zowel op OS niveau (SSh bijv) als op docker netwerk je netwerk chains wijzigen (webserver logins, botnetjes, etc).
Naast de simpele - single image - docker containers kun je ook containers draaien die zelf weer een hele rits aan applicaties draaien en "denken" dat ze in een VM zitten. Een compleet webpanel als
aapanel doet het perfect als docker container
Maar ook een volledige
mailserver past in één docker container
Alternatieven
Wil je meer werk dan kun je ook Podman gebruiken. Die kan zowel rootless als daemonless draaien. Alleen de compatibiliteit met docker images is niet altijd even lekker. Niet echt mijn keuze
Dan heb je ook nog de k*s omgevingen (k8s, k3s, k0s). Daar die bedoelt voor netwerkomgevingen met failover gebruiken die een continue health-check. In de testen die ik heb gedraaid in het verleden gebruiken die zomaar 10-25% CPU in idle, dus nog zonder enige container!
Niet echt een optie zolang dat verbruik er is voor een zuinige server.
Backups
Daar docker images en data scheidt is het backuppen - met bijvoorbeeld een Duplicati container - ook niet echt moeilijk en ben je in ieder geval geen onnodige dingen (applicaties, linux stuff) aan het backuppen.
Duplicatie kan naast S3, SFTP en nog een berg dingen ook backuppen naar OneDrive. Dus kun je je Microsoft365 Family account ook lekker vullen. Gebruik je die 6TB tenminste ook nog nuttig