DEV Community

Cover image for How to Deploy a flask app using Docker
Debojyoti Chakraborty
Debojyoti Chakraborty

Posted on

How to Deploy a flask app using Docker

Docker is a powerful tool that makes it easy to deploy and run web applications in a containerized environment. In this blog post, we'll show you how to use Docker to deploy a Flask application.

Before you begin, make sure that you have Docker installed on your machine. You can download it from the official Docker website.

Step 1: Create a Flask Application First, you'll need to have a Flask application that you want to deploy. If you don't already have one, you can create a new one by following the Flask documentation.

Step 2: Create a Dockerfile A Dockerfile is a script that contains instructions for building a Docker image. Create a file called "Dockerfile" in the root of your application directory and add the following:

FROM python:3.8
COPY . /app
WORKDIR /app
RUN pip install --upgrade pip
RUN pip install -r requirements.txt
CMD ["python", "app.py"]

Enter fullscreen mode Exit fullscreen mode

This Dockerfile tells Docker to use the official Python 3.8 image as the base, copy all the files from the current directory to the /app directory in the container, set the working directory to /app, install the application dependencies, and run the command "python app.py" to start the application.

Step 3: Build the Docker Image Once you have your Dockerfile ready, you can build the Docker image by running the following command in the terminal:

docker build -t myapp .

This command will build the image and tag it as "myapp".

Step 4: Run the Docker Container Once the image is built, you can run the container by executing the following command:

docker run -p 5000:5000 myapp

This command will start the container and map port 5000 on the host to port 5000 in the container. This means that your application will be accessible on http://localhost:5000.

Step 5: Deploy to a Remote Server To deploy your application to a remote server, you can use the Docker push command to push the image to a registry such as Docker Hub or a private registry, and then use the Docker pull command on the remote server to pull the image and run the container.

In conclusion, Docker is a powerful tool that makes it easy to deploy and run web applications in a containerized environment. By using a Dockerfile and building a Docker image, you can easily package your application and its dependencies and deploy it to any environment.

Top comments (0)