Docker has taken DevOps by storm and ignited interest in containers. Containers offer many of the benefits of virtual machines, but in a much more efficient, less resource-intensive system. Containers allow you to package up an application in an isolated environment that can be executed across machines in a reproducible manner. No more "well, it worked on my machine" syndrome when you leverage docker for your application development and deployment.
In this lab you will get up and running with Docker on Linux using a Microsoft Azure virtual machine. You will work with images from the public Docker registry, run a handful of containers, and create your own image from which to create containers.
Lab Objectives
Upon completion of this lab you will be able to:
- Install Docker on Linux using an Azure virtual machine
- Add a user to the Docker group
- Find and use images from the public Docker Registry
- Build your own images using Dockerfiles
- Clean up after images and containers are finished
Lab Prerequisites
You should be familiar with:
- What containers are
- Working at the command line in Linux
Lab Environment
Before completing the lab instructions the environment will look as follows:
After completing the lab instructions the environment should look similar to:
Updates
September 10th, 2021 - Updated Lab instructions to reflect the changes in docker dependencies
December 23rd, 2020 - Upgraded the VM SKU used in the lab
May 11th, 2020 - Updated validation check to account for potentially longer check times
April 13th, 2020 - Installed validation check functions to validate students' work
Logan has been involved in software development and research since 2007 and has been in the cloud since 2012. He is an AWS Certified DevOps Engineer - Professional, AWS Certified Solutions Architect - Professional, Microsoft Certified Azure Solutions Architect Expert, MCSE: Cloud Platform and Infrastructure, Google Cloud Certified Associate Cloud Engineer, Certified Kubernetes Security Specialist (CKS), Certified Kubernetes Administrator (CKA), Certified Kubernetes Application Developer (CKAD), and Certified OpenStack Administrator (COA). He earned his Ph.D. studying design automation and enjoys all things tech.