In this lab, we will learn to work with the fundamental aspects of Docker.
- Good news: You may not have to deal with most of the fundamental setup we’ll do in these labs in everyday situations.
- There are thousands of preconfigured Docker images available online that are easy to download and run. Instead of spending time installing and troubleshooting a tool or application you need, you can pull a preconfigured Docker image and use that instead. Someone else will have already done all the work for you! This can save you hours of your time on a regular basis.
- The Catch: Without understanding the fundamental aspects, you’ll never be able to make your life 1000x easier when Docker is the easy option!
Start by installing docker.io (Let’s use Kali)
- NOTE: At iCSI, it’s best to use the KALI_2025.zip template for this.

apt install docker.io

Although it is possible to build a Docker image from scratch, you will usually find a preconfigured Docker image and add whatever you need from there. The place to go for all things Docker is here:
<https://hub.docker.com/>
Creating an account isn’t necessary. You can search for images from the front page.

In either case, we’ll end up searching for Apache2.

Before we download anything, let’s take a look at the ‘tags’ section. Every docker image will always provide the ability to download previous versions/releases. These ‘tags’ simply allow us to specify which version we want to download. If you are interested in spinning up vulnerable software at home so you can try to exploit it, pulling down a docker version of the application using an old version number (or tag) is usually a good way to get that done.

In this case, we’ll be using the ‘docker pull’ command to download the ‘latest’ version.

docker pull ubuntu/apache2:latest