- A Cloud Guru
Create a Custom Docker Image
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.
Table of Contents
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
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
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
What's a lab?
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.