1) Docker makes installation of softwares easy on any computer, by making the installation independent from OS (much needed for tensorflow)
2) You dont have to worry about dependencies.
3) Makes portability of code easy
Docker is a platform or ecosystem around creating and running containers
Docker stores images of softwares in a repository called docker hub. To run on local machine, docker creates a container by pulling the image from the hub
To run the image,
docker run IMAGE_NAME
Container segments a portion of the hard drive for answering system calls from a particular process
Each container is completely isolated from the other
Such namespacing of hardware resources can be done only in linux systems. Therefore, docker sets up a linux virtual machine on MacOS/Windows. The docker command can only be run through docker client which is a linux VM (in windows/mac)