Com o Docker e o LXC, a implementação principal da tecnologia de contêineres é a mesma: ela é fornecida pelo próprio kernel do Linux. O kernel fornece vários mecanismos, como namespaces (mount, network, pid, ...), cgroups e outros. Portanto, o docker e o lxc usam esses recursos para simplificar o gerenciamento de contêineres e para automatizar casos de uso específicos.
Isso significa que tanto o docker quanto o lxc não existiriam sem recursos fornecidos pelo kernel do linux. A principal diferença entre o lxc e o docker é que conjunto de recursos do kernel do Linux / api é usado e quais fluxos de trabalho e usos são suportados.