This document provides an introduction to unikernels. It defines a unikernel as a specialised, single address space machine image constructed using library operating systems that can run on hypervisors, in docker containers, or directly on hardware. Unikernels are described as being small in size, fast booting, and high performance since they avoid context switches and have a minimal attack surface. Examples of unikernel implementations and applications are given, such as using unikernels for cloud computing, network functions virtualization, IoT, and high performance computing. The document then demonstrates building a simple echo web server unikernel in 5 minutes using the IncludeOS libraries and tools.