Docker utilizzava LinuX Containers (LXC) in precedenza, ma passava a runC (precedentemente noto come libcontainer), che viene eseguito nello stesso sistema operativo del suo host. Ciò consente di condividere molte risorse del sistema operativo host. Utilizza anche filesystem a livelli come AuFS. Gestisce anche il networking per te.
AuFS è un file system a livelli, quindi è possibile avere una parte di sola lettura e una parte di scrittura e unire quelli insieme. Quindi potresti avere le parti comuni del sistema operativo in sola lettura, che sono condivise tra tutti i tuoi contenitori, e quindi dare a ogni contenitore il proprio supporto per la scrittura.
Quindi supponiamo di avere un'immagine del contenitore di 1 GB. Se si desidera utilizzare una VM completa, è necessario disporre di 1 GB x numero di VM che si desidera. Con LXC e AuFS puoi condividere la maggior parte del 1GB e se hai 1000 contenitori potresti avere solo poco più di 1 GB di spazio per il sistema operativo dei contenitori, supponendo che tutti stiano utilizzando la stessa immagine del sistema operativo.
Von, puoi approfondire come si basa sul kernel host, se sta estraendo il proprio kernel – gaurav
@gaurav è * non * che tira il proprio kernel: si basa sul kernel già presente. – VonC
Voc, ma sappiamo centos, ubuntu ha un kernel diverso, come può contare sul kernel host, su come ubuntu può usare il kernel di centos – gaurav