Dockerizing Python Application

Photo by Ian Taylor on Unsplash

Dockerizing Python Application

containerizing Python based flask applications

ยท

2 min read

Docker provides the capability to package and run an application in a loosely isolated environment called a container. It is an open platform for developing, shipping, and running applications.

In this article, we will demonstrate, how to dockerize a python flask app. For this purpose, we will use our blockchain project.

Get the Application

For running Application we need to follow certain step :

  • clone the repository from github
git clone https://github.com/itsvinayak/blockchain.git
  • View the contents of the cloned repository ๐Ÿ—‚

Installing Docker in Ubuntu (linux)

sudo apt-get update -y
sudo apt-get install \
    ca-certificates \
    curl \
    gnupg \
    lsb-release -y

Adding gpg "GnuPrivacy Guard" key

sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

Adding APT Sources

sudo echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update -y && sudo apt-get install docker-ce docker-ce-cli containerd.io -y

Starting docker

systemctl start docker
systemctl enable docker
docker --version

Writing Docker File

In this project, We will create a docker file with name Dockerfile.

FROM python
LABEL maintainer="vinayak"
LABEL version="1.0"
LABEL description="This is a blockchain implementation in python"
LABEL website="https://github.com/itsvinayak/blockchain"
LABEL email="itssvinayak@gmail.com"
COPY . /app
WORKDIR /app
RUN pip install -r requirements.txt
EXPOSE 8080 
CMD ["python", "server.py" ]

Building Docker Image

sudo docker build --tag blockchain .

Here --tag name and optionally a tag in the 'name:tag' format.

Running Docker Image

Listing all images

sudo docker image ls

sudo docker run -d -p 8080:8080 blockchain

Server in now running at proof at port 8080.

Stopping docker image

listing running docker container

sudo docker container ls

Stopping running container

sudo docker container stop a2115d1010b5

Where a2115d1010b5 is running container id

All codes with docker files are present on GitHub

Did you find this article valuable?

Support Vinayak's Blog by becoming a sponsor. Any amount is appreciated!

ย