Building a Docker Image via Dockerfile

15 minutes
  • 2 Learning Objectives

About this Hands-on Lab

When creating Docker images for websites, applications, and any service that may require any code change in the future, it’s best to build in a way that can be quickly and easily rebuilt when any changes occur. Dockerfiles provide an in-platform way to do just that. In this lab, we’ll be building a Dockerfile that can generate an image of our website that will make sure that when changes happen with the website code, we won’t have to change the Dockerfile itself!

Learning Objectives

Successfully complete this lab by achieving the following learning objectives:

Create the Dockerfile

The Dockerfile can be created in a number of ways, so long as it meets expectations. The following nine steps are suggested:

  1. Define the desired container.
  2. Update the packages on the container.
  3. Install Nginx.
  4. Update the Nginx configuration.
  5. Create the location of the website files.
  6. Set the working directory to that of the website.
  7. Copy over website files, ensuring that Nginx is the owner.
  8. Expose port 80.
  9. Run Nginx at /tmp/nginx.pid; ensure Nginx is not set to run as a daemon.
Test the Image
  1. Use docker build to generate an image based on the provided Dockerfile
  2. Create a web01 container based on the image, ensuring port 80 on the container maps to 80 on the host and the container is launched in the background.

Additional Resources

Currently, your company, Container Hub, hosts its website on an Ubuntu virtual machine using Nginx. Newer applications and services are containerized — both in production and for the engineer's dev environments. This has eliminated dev/prod disparity and decreased deploy times. You wish to bring those same efficiencies to the frontend team by Dockerizing the website.

Take the website files provided (and provided Apache configuration), and create a Dockerfile that will deploy the website to an Alpine Linux container. Ensure the frontend devs can make any changes they need to the website without ever having to change the Dockerfile to create an image and test their changes.

When finished, test the Dockerfile by creating an image and deploying a container to the host.

What are Hands-on Labs

Hands-on Labs are real environments created by industry experts to help you learn. These environments help you gain knowledge and experience, practice without compromising your system, test without risk, destroy without fear, and let you learn from your mistakes. Hands-on Labs: practice your skills before delivering in the real world.

Sign In
Welcome Back!

Psst…this one if you’ve been moved to ACG!

Get Started
Who’s going to be learning?