Docker allows you to encapsulate applications so that they run practically on any Linux system as long as Docker is installed. Moreover, you can base your application on other dockerized applications, for example you write an app based on MySQL and include MySQL in your app’s Docker image. The
Docker Hub has over 2 million such applications (not all of them useful though).
Docker applications run in containers. This means that they are unable to see system resources like processes, files, mount points, network interfaces, netfilter rules. They only see the resources inside their containers.
The effect is similar to running the app in a virtual machine, but in contrast to VMs, no hardware is virtualized. All Docker containers on the same system share the same operating system kernel and, due to the absence of hardware virtualization, have practically no overhead.
Quote:
Is this something like a VM on windows?
|
You seem to think that VMs are specific to Windows. They exist on Linux as well, and by the way, you can run Docker on Windows, too.