Docker containers wrap a piece of software in a complete file system that contains everything needed to run: code, runtime, system tools, system libraries – anything that can be installed on a server. This guarantees that the software will always run the same, regardless of its environment.
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