Many computing enthusiasts may have heard of virtual machines but how many know about containers like Docker? Today we’ll be breaking down the basics of both as an introduction to virtual computing.
A virtual machine is an emulation of a computing system. To run a virtual machine, you will need your computer which begs the question, “why run a virtual system if I already have a physical one?” Virtual machines have various benefits; they can allow users to remotely harness more computing power for heavy tasks their computer would not be capable of. Virtual machines also enable computers that are locked to a particular Operating System (OS) to make use of another virtual version of the OS they want to use; this could be useful for using old software that’s no longer supported, or testing an application on another platform.
How Does a Virtual Machine Work?
Virtual machines work by using something called a hypervisor: a software, firmware or hardware that creates and runs virtual machines.
The hypervisor (in some cases) acts almost like an application, or bridge, through which another operating system can run. Hypervisors can be installed as hosted hypervisors or bare-metal hypervisors. Hosted hypervisors run on an OS: this would be like a programme window inside Mac OS X (for example). Through that window, you could use a version of Windows. Bare-metal hypervisors run directly from a computer’s hardware – often you choose which OS you want to boot from when a bare-metal hypervisor is installed.
Instead of hosting two operating systems on one computer, many people opt to use a networked virtual machine; this is where we can make use of the power of an external machine which scales up or down depending on the task load. Microsoft Azure is one such example – within Azure, virtual machine versions of Windows and Linux can be created via a network. Users can then work inside that virtual space.
Containers and Docker
The aim of containers (Docker being an example) is to remove unnecessary workload from virtual machines and instead streamline the virtual machine service. In a network virtual machine, all computers attached via the network run independent operating systems. OS’ are typically heavy, resource hungry pieces of software. Containers, on the other hand, remove the need for multiple operating systems on the same server and, instead, give everyone connected a sandboxed area of the server (which is running an OS) where they run particular applications; this allows multiple users to use the same OS more efficiently. The load of several heavy operating systems which would then run applications is bypassed in favour of direct access to applications.
Docker is an example of a software container platform. It allows developers to run, test and manage applications via a network and cuts down on the overall computing workload both client side and server side. The end goal of Docker and virtual machine software are essentially the same, but, generally speaking, Docker uses a small proportion of the computing power used by a virtual machine.
Docker is currently aimed almost solely at developers, but might the software make waves into everyday computing in the future?
Interested in learning more about virtual machines and containers like Docker? Our HND in Computing (new for 2017) could be the perfect course for you. Get in touch with a course advisor today to discuss course content, finance options and future career possibilities.