What Is Docker : How To Dockerize a Python Script

docker

 

Docker is an essential tool for developers as it allows them to quickly and easily create, deploy, and manage applications in a containerized environment. It provides a simple way of packaging applications with all their dependencies into one unit that can be deployed anywhere.

 

Docker images are the basic building blocks of docker. They consist of a set of layers that contain the application code, libraries, configuration files and other resources needed to run the application. DockerHub is the official repository for docker images which makes it easy for developers to find and use pre-built images from trusted sources.

 

The importance of docker lies in its ability to simplify development processes by providing developers with an easy way to package their applications into containers that can be deployed anywhere. This makes it easier for developers to collaborate on projects faster as they don’t have to worry about setting up complex environments or dealing with compatibility issues between different systems.

 

In this blog we will create a python script that verifies email using Minelead API, containerize it in a docker image and run it 24/7 in the background

 

Requirements 

 

- Docker and python installed

- Requests package installed

- Minelead api key

 

Outlines  

 

How to Setup a Virtual Environement in Python

 

How to Verify Emails With Python

 

How to Build a Docker Image

 

How to Run a Docker Image

 

How to Push a Docker Image to Dockerhub

 

 

How to Setup a Virtual Environement in Python

 

To create a virtual python environement, we need to open our favourite terminal in the folder that we want it to contain the project and execute the command:
python -m venv <name_of_virtual_environnement> 
we will name our virtual environement "venv"

 

it will take couple of seconds to finish, after that we can activate it with the command:
source venv/bin/activate, or for windows users source venv/Scripts/activate

 

Now that the environnement is ready we can install the packages required for our scripts to run, for thix example we will only need the requests package, so we install it using the command : pip install requests

 

We need to keep track of all the installed packages so that we can install them on the docker image later, to do that we should write all the package with the version used in a file that we will name requirements.txt, the command for that is:

pip freeze > requirements.txt

 

How to Verify Emails With Python

 

To be able to verify email addresses we'll use Minelead Verifier product, for that we need to sign up to and get the api key after that's done, we can start preparing the script :

 

import requests

 

api_key = '<api_key>'

 

emails_verify = ['john@minelead.io','jane@minelead.io']

 

def main(email):

    api_url = f'https://api.minelead.io/v1/validate/?email={email}&key={api_key}'

    response = requests.get(api_url).json()

    exists = response.get('exist')

    print(exists)

 

for email in emails_verify:

    main(email)

 

This simple script will check if the emails given exists or not and print for us the results.

After confirming that it is working, we can start building the docker image that contain our project

 

How to Build a Docker Image

 

After installing docker, we should be able to use the docker commands on our command line interface.

The command to build a docker image is docker builld [options]

 

The paramters that we need to give are the path of the Dockerfile and the tag of the image. For that, we need to create the dockerfile that specify the steps to follow in order for docker to build the image

 

The dockerfile should be named Dockerfile and be in the same directory as the requirements.txt and app.py file, and its content is as follows:

 

FROM python:3.8-slim-buster

 

ADD requirements.txt /

 

RUN pip install -r requirements.txt

 

ADD app.py /

 

CMD [ "python", "./app.py" ]

 

And now we are readt to build the image, we will execute the command: 
docker build . -t test/verify:latest

 

The dot after the build means that the Dockerfile is one the same folder where we are in the CLI.

 

The -t means that the next paramter is the tag of our image, the name before the slash is our dockerhub username (optional), after the slash is the name of image and name after the colon is the tag of that image

 

How to Run a Docker Image

 

We have our image ready to be ran now, the command  to do that is : docker run [options]

The options that we need to specify now are the name of the image that we want to run and the name of the container, so the command will become:

 

docker run --name verifier test/verify:latest

For testing purposes, the script we wrote only last couple of seconds, but if we have a script that would take longer or need to be running all the time, we need to run the container in the background so that it does not get interrupted, we need to add -d in the command to tell the docker engine to run it in the background. the command becomes now:


docker run --name verifier -d test/verify:latest

 

To check if the container is running or not. we can list all the containers by executing the command: docker container ls.

 

How to push a docker image to dockerhub

 

If we have a dockerhub account we can login using the command; docker login


Insert the username and password and execute the command: docker push test/verify:latest


After that's done, we can take a look at our dockerhub account and see if we find it there.


If it is there, we can finally pull it from any other machine that has docker installed and expect it to run the same way it did on our machine

 

Conclusion

 

Instances of containerized apps use far less memory than virtual machines, they start up and stop more quickly, and they can be packed far more densely on their host hardware. All of this amounts to less spending on IT.

 

In this blog, we explained what is docker and why it is very important, we wrote a small python script to prepare ourselves for more serious projects,

We are now able to verify a large number of emails and keep the container running 24/7 by running it in the background.
 

 

 

Searching ...
×
Set a Password
You have created your account using Google SSO. You need to set a password.

Phone Verification