Newsgroup: it.comp.os.linux.iniziare
Titolo: Container vs VM

Per i miei usi spesso avere proxmox e' un overkill (l'ho installato sul server in ufficio per avere una console remota in caso si schianti una VM, ma avere un os su bare metal sarebbe piu' "snello"), e oltretutto ha diverse "incompatibilita'" con il mio server di casa (hp microserver g8), e sto pensando di rimettere il sistema operativo direttamente sul ferro.
A volte pero' mi servirebbero delle VM per far girare al bisogno qualche cazzatina o provare quella tal distro.
Secondo la vostra esperienza, cosa ne direste se installassi oracle linux sul ferro e usassi dei container con all'interno delle VM qemu/kvm?


partiamo dall'inizio, i container differiscono dalle vm proprio perché non 
hanno lo strato qemu/kvm.  in buona sostanza i container condividono il 
kernel con la macchina host e limitano le risorse (ram e cpu) tramite i 
control groups, per cui non c'è una reale segregazione. viceversa gli 
hypervisor come kvm usano delle funzionalità specifiche dei processori per 
spawnare degli ambienti hardware con cpu e ram virtuali completamente 
segregati. 
 
è chiaro che i container sono molto più efficienti (non c'è nessun 
overhead rispetto a far girare gli stessi processi direttamente sulla 
macchina host) ma più limitati e insicuri. 
 
detto questo, cerco di rispondere alla tua domanda che a dire il vero non 
ho capito benissimo. mi pare di capire che vorresti usarlo anche come 
workstation, nel qual caso va bene imho installare libvirt e virtual-
manager per avere delle vm alla bisogna. questo forse è quello che cerchi.
 

 manager per avere delle vm alla bisogna. questo forse è quello che cerchi.
 
si, in effetti capisco che sia una nicchia.
in pratica vorrei mettere su un server (non come workstation, lavora headless, a volte mi piacerebbe provare distro tipo casaos, freenas, o simili) con OL su metallo, e con i servizi che girano in container.
ho visto che esistono container di distro linux (es 
https://hub.docker.com/_/ubuntu
), a questo punto stavo pensando (sempre tenendo buono il "OL su metallo")
1) mi scarico un container contenente una distro linux e la lancio solo quando mi serve
2) vado di qemu/kvm gestito "manualmente" e non come proxmox.

 proxmox.
 
come ti dicevo i container non usano lo strato qemu/kvm. inoltre dovresti 
guardare lxc e non docker, che concettualmente è una cosa un po' diversa 
da quello che vuoi fare te. terzo punto, un container non è il top per 
provare una distro più che altro dipende cosa vuoi provare. quarto, 
proxmox fa girare anche i container lxc. 
 

 proxmox fa girare anche i container lxc.
 
Ti ringrazio per la risposta!

 Ti ringrazio per la risposta!
 
Non conosco l'argomento, ma da quello che si legge qui dovrebbe essere 
possibile lanciare container da un normale sistema linux (più o meno come 
avere kvm/virtual box/vmware/etc.).
 
https://www.redhat.com/it/topics/containers/what-is-podman
 

Il Sat, 15 Jul 2023 17:22:18 -0000 (UTC), Giuseppe Della Bianca ha
scritto:

podman è un runtime daemonless alternativo a docker, anzi una delle 
alternative perché oramai quello dei container è uno standard. tuttavia i 
container non sono pensati per eseguire dei sistemi operativi sebbene 
potenzialmente sia possibile: i runtime eseguono un comando e quando il 
processo termina anche il container termina. e le immagini solitamente 
contengono solo lo stretto necessario per eseguire quel programma. 
 
per dirla in altro modo un container puoi utilizzarlo per eseguire una 
istanza di mysql, redis, nginx, etc... senza bisogno di installarlo nel 
sistema ma semplicemente eseguendo l'immagine relativa.
 
ovviamente se questo processo è init parte di fatto un sistema operativo, 
ma non è questa la filosofia che sta dietro ai container. essi nascono per 
semplificare la distribuzione e deploy del software in quanto la 
distribuzione viene fatta attraverso immagini immutabili dove il software 
è già installato con tutte le sue dipendenze. 
 
 
 
 

 potenzialmente sia possibile: ...
 
Si però è un fatto che stanno prendendo piede in questo senso come 
alternativa a flatpack e simili, certo sono meno isolati però hanno delle 
grosse potenzialità, inoltre credo che almeno alcuni di quei sistemi 
operativi tipo Nixos facciano qualcosa del genere, però ne capisco quasi 
0, o meglio era un sacco di tempo che cercavo di capire a cosa servissero 
questi container e mi ero convinto che fosse una cosa per server e 
programmatori, fino a quando (qualche giorno fa su uno degli ultimi video 
di morrolinux ) non mi sono imbattuto in podman e in distrobox che non 
senza qualche patema ho installato su Solus. Ebbene posso usare l'immagine 
di Ubuntu o Arch per installare qualsiasi programma, non solo questo è 
visto come un processo del mio sistema e compare nel menu di Solus ciò mi 
consente di avere tutti i programmi che non sono presenti o non sono 
aggiornati  su Solus istallandoli sulle corrispondenti immagini. Per dire 
potrei usare l'immagine di Centos per installare Davinci Resolve che se 
non erro è certificato ufficialmente solo per quella distribuzione. Non 
solo usa la GPU Nvidia ed è fluido, molto fluido non percepisco 
differenze, ce ne saranno ma sono davvero poche. Potenzialmente è la fine 
di flatpack, appimage ecc. Certo soprattutto per chi come me non è una 
cima dell'informatica il sospetto di esporsi a rischi c'è. Il tutto cmq è 
da user, non da root, per questo anche podman che  da questo punto di 
vista rende le cose più semplici rispetto a docker mi sembra di aver 
capito. Su distrobox le informazioni sono davvero complete, però ho dovuto 
integrare perché non funzionava tutto come previsto, infatti volevo 
scrivere qui per chiedere qualche chiarimento, alcune distribuzioni però 
ce lo hanno già pacchettizato.  Ad esempio ho dovuto aggiungere 
su .bashrc: xhost +si:localuser:$USER per far partire graficamente i 
programmi del container e ora sul terminale capeggia la nuova scritta 
localuser:fabio being added to access control list , questa soluzione non 
l'avevo preventivata e mi chiedevo se esisteva di meglio o se andava bene.
 
 
 

 rispetto a docker mi sembra di aver capito. 
Quanto sgrammaticato è questo messaggio, scusate...Cmq volevo ribadire 
questo programma dopo essere installato è semplicissimo e potentissimo 
apparentemente.

 rispetto a docker mi sembra di aver capito. 
 
podman rispetto a docker è daemonless, ovvero docker è un servizio daemon 
che gira sulla macchina e il comando cli interagisce con questo tramite 
delle api. podman non ha un daemon inoltre come ricorda il nome può 
eseguire dei "pod" stile kubernetes localmente.
 
stiamo entrando in un argomento piuttosto articolato da discutere su 
icoli.

 
Davinci non ancora, Gimp+gimic in Ubuntu e anche un programma 
complicatissimo non presente su Solus :
https://indilib.org/get-indi.html
 
per cercare di collegare live la mia Reflex Pentax al pc.
Ho usato l'immagine di Ubuntu.
Ne discuto qua col mio inglese maccheronico 
https://discuss.getsol.us/d/
 
9450-distrobox/5  .
Ho postato anche un immagine in cui vedi Gimp identificato come (su 
ubuntu-nvidia.solus) dentro cui c'è anche gmic come add-on (cosa che ad 
esempio non riesco a far funzionare con i flatpack per niente..devo dire 
che però non è una versione completissima di gmic) però come primo 
esperimento è riuscito benone. Complicato è stato configurare podman e 
distrobox su Solus perché c'erano cose evidentemente diverse dalle 
distribuzioni più blasonate. Ma dopo apt-get install e via..


 distribuzioni più blasonate. Ma dopo apt-get install e via..
 
certo sono esperimenti interessanti ma non hai raggiunto lo stesso 
obiettivo che si propone flatpak piuttosto che snap, ovvero pacchettizzare 
e rendere ridistribuibile il software. hai tirato su un container con 
l'ausilio di distrobox che fa il lavoro sporco e dentro di esso hai 
installato il software: ma i container per loro natura sono effimeri e nel 
momento in cui li distruggi perdi tutto. infatti il software non si 
installa nel container bensì costruendo una immagine con il dockerfile, in 
questo modo hai una immagine immutabile da cui puoi far partire il 
container tutte le volte che vuoi.
 

 far partire il container tutte le volte che vuoi.
 
Eh si ok e ammetto che fatico a capire come funzionano in astratto, è cmq 
uno strumento in più che di fatto rende improbabile rimanere senza un 
programma anche se usi una distribuzione che ne è priva.