Виртуальная среда помогает разделить зависимости, необходимые для разных проектов. Следовательно, имеет смысл использовать venv, когда у вас есть несколько проектов в одной системе с различными зависимостями.
При использовании docker вы пытаетесь ограничить один контейнер одним проектом. Хотя технически возможно создать виртуальную среду внутри контейнера docker, но это на самом деле не очень хорошая вещь. С docker у вас уже есть совершенно другая «среда» для всех ваших проектов.
Кроме того, с учетом вашей точки зрения производства, всегда желательно использовать контейнеры, такие как docker.
У вас может быть несколько контейнеров, работающих вместе для вашего проекта, таких как postgres nginx и web_app, с использованием одного или разных .envs, полностью в зависимости от того, как вы хотите организовать в своем docker -compose.yml