

The host operating system has control over how much processing power it gives to a program, and VirtualBox asks for a lot of power, so virtual machines often run very slowly. In the VM example above, not only is the Mac host running all of the Mac OS background tasks, it’s also running all of the Windows background tasks - which all just look like one big heavy program to the host. So what’s the difference between a virtual machine in VirtualBox and a container in Docker? Well, using a virtual machine can be a heavy task for a processor. A Mac host computer running a Windows virtual machine using VirtualBox. Docker, like VirtualBox, “virtualizes” an operating system inside of a host operating system. The Windows in the VM doesn’t know that it’s running inside of a simulation and not a real computer - it just thinks its the main operating system.

On a virtual machine (or VM for short) running Windows, the virtual hard drive contains all of the Windows operating system code, which can be several gigabytes. A virtual machine simulates all of the parts of a real computer, including the screen and the hard drive, which on the real computer (often referred to as the host) is just a big single file (called a virtual hard drive). If you’ve ever used VirtualBox or VMware, you may be familiar with virtual machines used to run Windows inside of a Mac, for example. Containers are sort of like virtual machines, which are like simulations of a computer running inside of your real computer. Here we will take a brief look at why software engineers, and everyday users, choose Docker to quickly and efficiently manage their computer software.ĭocker is a tool used to run containers. However, it can be difficult to understand what it’s really for. Docker is a very popular tool in the world of enterprise software development.
