Что такое Docker контейнер и чем отличается от виртуальной машины?

Виртуальная машина виртуализирует целый компьютер и запускает собственную ОС поверх гипервизора. Контейнер изолирует процессы на уровне ОС. Поэтому на одном сервере обычно можно запустить гораздо больше контейнеров, чем виртуальных машин.
Docker-контейнер — это изолированная среда, в которой приложение запускается вместе с необходимыми ему зависимостями. Контейнеры используют ядро операционной системы хоста, поэтому обычно запускаются быстрее и потребляют меньше ресурсов, чем виртуальные машины.
Docker-контейнер — это полноценная виртуальная машина с отдельной операционной системой и собственным ядром.