There is a way to make a virtualenv relocatable but it has some issues where it doesn't always work very well. I'm not sure offhand what those issues are though.
virtualenvs are just overrides to environment variables that change where things should look to find the python interpreter, libraries, modules, et al.
docker is much more involved, using LXC to force process isolation, an effective chroot, networking restrictions, etc.
many (most?) folks' current usage of virtualenv would not be portable to docker without substantive work to accomodate the restrictions that docker imposes.
(note: this isn't a critique of docker; those things are features. they're just orthogonal to this)