Docker uses a client/server model. The server or daemon actually does all the building and running of docker container. Docker containers only run as long as they are needed.
- Managing application dependencies is definitely easier with Bundler/NPM/Composer
- Services that app depends on and running properly - Infrastructure Automation Software like Chef/Puppet made this easier
- Virtualization - Vagrant has been amazing in developing the automation code.
- Docker containers are just binary files that you download and run. These contain the application and dependencies needed to run the application
- The containers use the docker engine that provides the thin layer over the top of host OS vs a traditional VM
- Uses host to run processes, these processes are sandboxed like iOS
- No conflicts between containers
- Can run on top of VM and make deployment easy