Create a Custom Docker Image

30 minutes
  • 4 Learning Objectives

About this Hands-on Lab

In this lab you are required to create a custom Docker image of CentOS, and you need to run the Apache web server on it. You can expose port **8080** for Apache. This way when you run your Docker container with the image, to test things out, you will be accessing your web server at port **80** but it will be remapped to port **8080** in the container. In short, you need to write a Dockerfile, populate it with instructions, build an image based on the Dockerfile, and then run the container with that image.

**Note:** Please give the lab an extra minute before connecting via SSH into the instance.

Learning Objectives

Successfully complete this lab by achieving the following learning objectives:

Install and Start Docker
sudo yum install docker 
sudo systemctl start docker 
sudo systemctl enable docker 
Write a Dockerfile in /home/cloud_user/ Which Will Be Used to Create a Custom Image
vim /home/cloud_user/Dockerfile
FROM scratch
ADD centos-7-x86_64-docker.tar.xz /

LABEL org.label-schema.schema-version="1.0" 
    org.label-schema.name="CentOS Base Image" 
    org.label-schema.vendor="CentOS" 
    org.label-schema.license="GPLv2" 
    org.label-schema.build-date="20191001"

RUN yum -y update
RUN yum -y install httpd

CMD ["/usr/sbin/httpd", "-D", "FOREGROUND"]
EXPOSE 80
ESC
:wq
ENTER
Build an Image from the Dockerfile
cd /home/cloud_user/
sudo docker build -t cloud_user/my_webserver:v1 .
Open Port 8080 with Firewalld and Run a Container from an Image and Test It Out
sudo firewall-cmd --add-port=8080/tcp --permanent
sudo firewall-cmd --reload 
sudo docker run -d -p 8080:80 --restart=always --name my_webserver cloud_user/my_webserver:v1

Additional Resources

The centos-7-x86_64-docker.tar.xz file is located in /home/cloud_user/.

You need to include it in the Dockerfile, and from it create a docker image for the Apache web server.

Firewalld is up and running.

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?