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