Docker è da solo una piattaforma di runtime per contenitori, che è in grado di gestire e orchestrare i contenitori senza bisogno di un altro strato come LXC.
All’inizio, Docker è stato creato come strato di astrazione su LXC. Tuttavia, Docker si è evoluto e ha sviluppato i propri strumenti per la gestione dei contenitori, chiamato libcontainer, ora noto come runC.
Dunque, oggi LXC e Docker non vengono più utilizzati insieme come facevano in passato.
Se vuoi utilizzare LXC in Docker, tecnicamente è possibile cambiare il runtime di Docker da runC a LXC aggiungendo il parametro —exec-driver=lxc quando avvii il daemon di Docker. Tuttavia, questa funzionalità è deprecata e avidata per gli sviluppatori.
Per concludere, LXC e Docker sono due soluzioni diverse per gestire i contenitori Linux e normalmente non hai bisogno di usare LXC con Docker. LXC è meglio per avere un ambiente con un sistema operativo completo con l’isolamento dei processi, mentre Docker è ideale per l’esecuzione di singole applicazioni in modo isolato.