For this lab, we will be creating a Dockerfile that will start a web server using a custom configuration file copied from the host system. The web server will listen on a non-standard port. Upon completion, you will have a working understanding of Dockerfiles and how to build a custom image from them.
*This lab is not approved or sponsored by Red Hat.*
Learning Objectives
Successfully complete this lab by achieving the following learning objectives:
- Set Up a New Build Directory
Create a new build directory. Then, copy the
Dockerfile
, along with any.zip
and.tar
files, from/home/cloud_user
and add them to the build directory.- Complete the Dockerfile
Complete the
Dockerfile
. The following should be completed in the Dockerfile:- Start with the image
registry.access.redhat.com/ubi8/ubi:8.4
. - Set yourself as the maintainer and provide a description using
LABEL
. - Install
nginx
andunzip
packages into the image. - Set a variable named
PORT
to a value of90
. - Use the variable
PORT
to expose port90
in the image. - Import the file
nginx.zip
to/tmp
. - Unzip the
nginx.zip
file to/etc/nginx
. - Import and extract the file
llama_cart.tar
to/usr/share/nginx/html/
. - Import the file
llama_cart.tar
to the working directory/tar_file
without uncompressing it. Set the container to start
nginx
with options"-g"
and"daemon off;"
. Make"-g"
and"daemon off;"
overwritable by Podman run arguments.
Note: The draft
Dockerfile
also contains these notes presented as comments.- Start with the image
- Build and Test the New Image
Build the new container image with the following information:
- Name the image
llama-cart
. - Tag the image
v1
.
- Name the image
Start a new container named
llama-cart
and exposeport 90
in the container toport 8090
on the localhost.Verify the website is available on
port 8090
of the system using a web browser.