Flask App in Docker: 
Docker installation: 
Open terminal 

• sudo apt update  
• sudo apt install docker.io 
• sudo chmod 666 /var/run/docker.sock 
• sudo systemctl start docker 

1. Creating a flask App: 

Create a newfolder:  

flask-docker-app 

Create a python file app.py: 

from flask import Flask, jsonify, request

app = Flask(__name__)

products = [
    {"id": 1, "name": "Product A", "price": 9.99},
    {"id": 2, "name": "Product B", "price": 14.99},
    {"id": 3, "name": "Product C", "price": 19.99}
]

@app.route('/products', methods=['GET'])
def get_products():
    return jsonify(products)

@app.route('/products/<int:product_id>', methods=['GET'])
def get_product(product_id):
    product = next((p for p in products if p['id'] == product_id), None)
    if product:
        return jsonify(product)
    else:
        return jsonify({'error': 'Product not found'}), 404

@app.route('/products', methods=['POST'])
def create_product():
    data = request.get_json()
    new_product = {
        'id': len(products) + 1,
        'name': data['name'],
        'price': data['price']
    }
    products.append(new_product)
    return jsonify(new_product), 201

if __name__ == '__main__':
    app.run(debug=True)


2. Create a requirements.txt file to list your dependencies: 
Flask==3.0.3    
jsonify==0.5
requests==2.32.3

3. Create a docker file with name Dockerfile 

FROM python:3.9-slim 
WORKDIR /app 
COPY . /app 
RUN pip install --no-cache-dir -r requirements.txt 
EXPOSE 5000
CMD ["python3", "app.py"] 

4. Building Docker image: 
docker build -t flask-docker-app . 
docker run -p 5000:5000 flask-docker-app 

5. Open browser an run: http://localhost:5000 

Open terminal and type: 
curl http://localhost:5000/products
curl curl -X POST http://localhost:5000/products -H "Content-Type: application/json" -d '{"name": "Product D", "price": 25.99}'
