


Docker Hands-on: Learn Dockerfile, Container, Port Forwarding with Sample Flask Project
This tutorial demonstrates building and deploying a simple Flask application using Docker. We'll cover creating a Dockerfile, building the image, running a container, and even pushing the image to Docker Hub. For those unfamiliar with Docker fundamentals, check out this previous post:
Let's get started with a hands-on example:
Project Setup:
- Create a directory named "flask-app".
- Inside "flask-app", create
index.py
containing this simple Flask application:
# index.py from flask import Flask app = Flask(__name__) @app.route("/") def hello(): return "Hello World!" if __name__ == "__main__": app.run(host="0.0.0.0", port=int("5000"), debug=True)
- Also in "flask-app", create a
Dockerfile
(no extension) with the following content:
FROM python:3.13.1-alpine3.21 WORKDIR /app COPY . /app RUN pip install -r requirements.txt EXPOSE 5000 CMD ["python", "index.py"]
- Finally, create
requirements.txt
in the "flask-app" directory:
<code>Flask==2.3.2</code>
Your directory structure should now look like this:
<code>flask-app/ ├── Dockerfile ├── index.py └── requirements.txt</code>
Building and Running the Docker Image:
- Navigate to the "flask-app" directory in your terminal.
- Build the Docker image using this command:
docker build -t flask-app .
- Verify the image was built successfully:
docker images
- Run the Docker container, mapping port 5000 on your host machine to port 5000 in the container:
docker run --name my-flask-app -d -p 5000:5000 flask-app
- Check the running container:
docker ps -a
- Test the application by accessing
http://127.0.0.1:5000
in your browser or usingcurl
:
curl http://127.0.0.1:5000
- To stop and remove the container:
docker container rm -f my-flask-app
- To remove the image:
docker image rm -f flask-app
Pushing to Docker Hub:
Before pushing to Docker Hub, create an account if you don't have one already. Then:
- Tag the image for Docker Hub (replace
omerbsezer
with your Docker Hub username):
docker tag flask-app omerbsezer/dev-to-flask-app:latest
- Push the image:
docker push omerbsezer/dev-to-flask-app:latest
You can then see your image on Docker Hub. A screenshot would be placed here.
Conclusion:
This practical example demonstrates a complete workflow for containerizing a simple Python application with Docker. For more Docker tutorials, AWS, Kubernetes, Linux, DevOps, Ansible, Machine Learning, Generative AI, and SAAS content, follow these links:
The above is the detailed content of Docker Hands-on: Learn Dockerfile, Container, Port Forwarding with Sample Flask Project. For more information, please follow other related articles on the PHP Chinese website!

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics



Solution to permission issues when viewing Python version in Linux terminal When you try to view Python version in Linux terminal, enter python...

When using Python's pandas library, how to copy whole columns between two DataFrames with different structures is a common problem. Suppose we have two Dats...

How to teach computer novice programming basics within 10 hours? If you only have 10 hours to teach computer novice some programming knowledge, what would you choose to teach...

How does Uvicorn continuously listen for HTTP requests? Uvicorn is a lightweight web server based on ASGI. One of its core functions is to listen for HTTP requests and proceed...

In Python, how to dynamically create an object through a string and call its methods? This is a common programming requirement, especially if it needs to be configured or run...

The article discusses popular Python libraries like NumPy, Pandas, Matplotlib, Scikit-learn, TensorFlow, Django, Flask, and Requests, detailing their uses in scientific computing, data analysis, visualization, machine learning, web development, and H

Fastapi ...

How to avoid being detected when using FiddlerEverywhere for man-in-the-middle readings When you use FiddlerEverywhere...
