I am curious about difference between a jail environment in linux and Docker. What separates these two technologies?
While both Docker and jails have some similar functionality, they are built for different purposes.
The term "jail" comes from the FreeBSD distro. A lot of people will also refer to a chroot as a jail. At its core these jails virtually change the root directory for a process and its children. This means that these processes are contained (jailed) within this new directory and should not have access to folder outside of it. Jails are a great way to run a process that you want isolated from the rest of the system.
Docker Linux is an entire platform for running containers. At its core it does this by using Linux namespaces and Linux Control Groups (source). Docker is built around packaging these containers and allowing them to easily be shared with other systems.
Ultimately, both technologies are isolating processes. However, Docker does this with the intent of making the isolated processes portable and repeatable.