In this article, we will see how to build and run a docker container from the Dockerfile.
Let’s write an example Dockerfile which contains the instructions on how to build the Docker image.
# Use an official Python runtime as a parent image FROM python:3.7-slim # Set the working directory to /app WORKDIR /app # Copy the current directory contents into the container at /app COPY . /app # Install any needed packages specified in requirements.txt RUN pip install --trusted-host pypi.python.org -r requirements.txt # Make port 80 available to the world outside this container EXPOSE 80 # Define environment variable ENV NAME World # Run app.py when the container launches CMD ["python", "app.py"]
The above Dockerfile starts by setting an official Python 3.7 image, sets the working directory to /app, copies the current directory into the container, installs the packages specified in requirements.txt, exposes port 80, sets an environment variable, and finally runs app.py when the container launches.
Building the docker image
docker build command to build the docker image. This command takes the path of the Dockerfile as an argument and builds the Docker image based on the instructions specified in the Dockerfile.
docker build -t my-flask-app .
The -t option in the above command tells about the name of the docker image and “.” indicates the location of the docker file which is nothing but the current directory.
Run the Docker container
Once the Docker image is built, we can use the
docker run command to create and run the Docker container from the Docker image. Following is the command to run the docker container.
docker run -p 4000:80 my-flask-app
In the above command,
-p specifies the port mapping i.e. port 4000 on the host machine is mapped to port 80 in the container and
my-flask-app is the name of the Docker image.