Docker is a great tool and it is really useful for automating our workflows. I have been using Docker for many years, yet sometimes I find myself forgetting the basic commands.
The scope of these series is to give some really simple examples of how to use Docker. In this article we will dockerise a static website. For those not familiar with the Docker vocabulary, dockerise is when we put some app into a Docker container. Before we start, let’s download and install the docker CLI from the official website.
Here’s a dead simple website that we are going to dockerise.
<html> <head> <title>Simple website</title> </head> <body> <h1>Hello there</h1> <p> I am a simple website and I live inside a Docker container. </p> </body> </html>
Let’s copy that code, open our terminal / code editor and paste it into an
index.html file. Now let’s create a Dockerfile.
We can now create a new file with the name
Dockerfile and add the following code into it.
FROM php:7.0-apache COPY . /var/www/html/
What we’re doing here is we’re telling the container to install apache. Then the next step is to copy everything from the current directory and put it into
/var/www/html/ which is the directory apache will look at for HTML (and not only) files. Now we have everything that we want in order to build our Docker image.
We have configured what the Docker image is going to contain so let’s build it.
docker build -t static-website .
-t flag stands for tag and is a good practice that will simply make our lives so much easier when looking at long lists of Docker images.
The first time we run that command, it is going to take a few seconds or minutes depending on our internet connections. That is because Docker has to download the image we specified in the Dockerfile.
We can see all of the available images with the
docker images command. Our command line should look like this.
➜ docker images REPOSITORY TAG IMAGE ID CREATED SIZE static-website latest 3152d04a164f About a minute ago 368MB php 7.0-apache aa67a9c9814f 2 years ago 368MB
Now that we have a Docker image for our website, we can spin up some Docker containers.