Development

Docker Bootcamp – Background and Installation

jumping on containers

Welcome to my Docker Bootcamp blog series on getting started with Docker.  In this first post, we’ll find out what Docker is and what it is not, learn about containers, compare containers to virtual machines, and finally, get Docker installed on your local machine.

Docker Is…

Docker is a set of tools to make the use of containers more accessible, consistent, and secure. You can read more about how Docker defines Docker on Docker.com. 

What Docker Is NOT

Docker is not itself a container technology, although the name “Docker” has become synonymous with containers.  Docker is also not the only tool available for managing containers.

What Are Containers?

Containers make software applications portable across computing environments (Windows desktop, Linux desktop, mac desktop, and cloud).  They allow the software to be installed and run the same in each environment without needing to know anything about the host environment (including the operating system and other installed software).  Moreover, dependencies necessary to run the software are included in the installation package.

Containers allow one software application to upgrade a dependency without impacting software in other containers.  They protect the host from malicious software by only allowing access to specified resources (they run in isolation from anything else on the host environment). Installation does not alter the host environment (outside the container) and is therefore fast and easy to fully remove.

Finally, containers require less computing overhead and disk storage than a full hardware-based virtual machine (which requires a full guest operating system). Multiple containers can be linked together to provide a full application ecosystem (ie: Sitecore, SQL Server, Solr).

Virtual Machines vs. Containers

Now, imagine your client has three environments: development, staging, and production.  In virtual machine environments, you need to install, configure and maintain all the software required to run your application in all three environments (.net, IIS, and your application). Using containers, you package all the software required to run your application (.net, IIS, and your application) into an image and deploy it to a container in each of your environments. Your application will run the same in each environment because the dependencies are built into the image itself.

Installing Docker

Prerequisites

  • Enable VT-x extensions in BIOS
  • Ensure host machine supports virtualization and slat/ept
    • Download SysInternals Coreinfo
    • coreinfo64.exe -v
    • Look for a * next to the following items
      • HYPERVISOR    *       Hypervisor is present
      • VMX           *       Supports Intel hardware-assisted virtualization
      • EPT             *       Supports Intel extended page tables (SLAT)
      • URG            *       Supports Intel unrestricted guest
    • If any have a dash instead of a *, docker may work, but running docker inside a virtual machine may not work.

Set up Virtual Machine (Optional)

  • Install VMWare
    • Can use Workstation Player or Workstation Pro
      • At least version 15
    • Will not work with Virtualbox (as of version 6.1.16)
  • Install guest os
    • Windows 10 version 2004 or later
    • 10 GB of ram (at least)
    • 2 CPU Cores (at least)
    • Check boxes for Virtualize VT-x/EPT and Virtualize CPU Performance Counters
    • Under options -> VMWare Tools Select Update Automatically
  • Ensure guest machine supports virtualization and slat/ept
    • coreinfo64.exe -v
    • Look for a * next to the following items
      • HYPERVISOR    *       Hypervisor is present
      • VMX           *       Supports Intel hardware-assisted virtualization
      • EPT             *       Supports Intel extended page tables (SLAT)
      • URG            *       Supports Intel unrestricted guest
    • If any have a dash instead of a *, docker will not work inside the virtual machine

Install Docker

And there you have it! Docker is now installed on your machine. Next, I’ll go over some terminology around Docker and containers, show you some of the Docker commands, and give you some examples to help you get started.

About the Author

More from this Author

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Subscribe to the Weekly Blog Digest:

Sign Up
Categories