Photo by Ian Taylor on Unsplash
Dockerizing Python Application
containerizing Python based flask applications
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
ย