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 an AWS 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.
Upon completion of this Lab you will be able to:
You should be familiar with:
Before completing the Lab instructions the environment will look as follows:
After completing the Lab instructions the environment should look similar to:
April 5th, 2023 - Resolved an issue that caused the Lab to fail to set up on rare occasions
February 22nd, 2022 - Updated requirements file
December 14th, 2021 - Updated Dockerfile to shorten the path to the source file
April 16th, 2021 - Moved validation checks to the most relevant Lab step for more immediate validation feedback
January 5th, 2021 - Updated code snippets
July 9th, 2020 - Migrated to EC2 Instance Connect
July 3rd, 2019 - Added an additional custom validation Lab step to check the work performed in the lab
June 27th, 2019 - Added a custom validation Lab step to check the work performed in the lab
January 10th, 2019 - Added a validation Lab Step to check the work you perform in the Lab
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.