Qual è la relazione tra il sistema operativo host della docker e il sistema operativo dell’immagine base del contenitore?

Non sono sicuro che sto facendo la domanda giusta … ma mentre sto leggendo tutto il docker che posso mettere le mani su vedo che posso installare Docker su Ubuntu 12.04 (per esempio) e quindi posso installare un contenitore Fedora o una versione diversa di Ubuntu? (C’è un esempio in cui l’utente ha installato busybox nel contenitore.)

E naturalmente potrei sbagliarmi completamente.

Ma sarebbe la mia aspettativa che ci fosse una connessione effimera tra il sistema di base e il contenitore.

ridefinito: qual è la relazione tra il sistema operativo host e il sistema operativo dell’immagine della base contenitore?

Come menzionato da BraveNewCurrency, l’unica relazione tra il sistema operativo host e il contenitore è il kernel.

È una delle principali differenze tra le macchine virtuali docker e ‘regolari’, non c’è un sovraccarico, tutto avviene direttamente nel kernel dell’host.

Questo è il motivo per cui è ansible eseguire solo i file di distribuzione / binari basati su Linux all’interno del contenitore. Se vuoi eseguire qualcos’altro, non è imansible, ma avresti bisogno di una sorta di virtualizzazione all’interno del contenitore (qemu, kvm, ecc.)

La finestra mobile gestisce le immagini che rappresentano la rappresentazione del file system. Puoi installare qualsiasi distribuzione Linux o semplicemente mettere binari.

In effetti, per comodità dell’esempio, spesso ci affidiamo alle immagini di base, ma potresti anche creare la tua immagine senza alcuna delle librerie / binari di distribuzione. In questo modo avresti un contenitore veramente piccolo ma funzionale.

Un altro punto riguardo le distribuzioni: poiché il kernel è ancora il kernel dell’host, non avrete alcun modulo / patch del kernel specifico fornito dalla distribuzione.

Letteralmente, l’unica cosa che hanno in comune è il kernel. Il loro intero mondo (file system) si trova nel contenitore docker.