Docker w praktyce: Stworzenie aplikacji webowej z kontenerami

Tworzenie aplikacji webowej w Pythonie i uruchamianie jej w kontenerze Docker to świetny sposób na zrozumienie podstaw technologii kontenerowych i ich zastosowania w praktyce. W tym artykule pokażę krok po kroku, jak zbudować prostą stronę w Pythonie przy użyciu frameworka Flask, a następnie uruchomić ją w kontenerze Docker. Dowiesz się, jak przygotować Dockerfile i użyć Docker Compose do zarządzania aplikacją.
Zobacz też
- Docker Compose – ułatwienie zarządzania wieloma kontenerami
- Dockerfile – tworzenie własnych obrazów Dockera
- Instalacja Dockera na różnych systemach operacyjnych
Wybór frameworka: Flask
Flask to lekki framework dla aplikacji webowych w Pythonie, idealny do mniejszych projektów i nauki. Umożliwia szybkie prototypowanie i łatwą konfigurację.
Instalacja Flask
Najpierw stwórz nowy katalog, który będzie zawierał Twoją aplikację, np. my_flask_app
. Następnie utwórz w nim plik app.py
z kodem aplikacji.
mkdir my_flask_app cd my_flask_app
Zainstaluj Flask wirtualnym środowisku. Dzięki temu unikniesz potencjalnych konfliktów między zależnościami.
python3 -m venv venv source venv/bin/activate pip install Flask
Kod aplikacji Flask
W pliku app.py
umieść prosty kod aplikacji:
from flask import Flask app = Flask(__name__) @app.route('/') def hello_world(): return 'Hello, World!' if __name__ == '__main__': app.run(host='0.0.0.0', port=5000)
Konfiguracja Dockera
Tworzenie Dockerfile
Dockerfile to plik tekstowy, który definiuje, jak skonfigurować obraz Dockerowy zawierający naszą aplikację. Utwórz plik o nazwie Dockerfile
w katalogu my_flask_app
z następującą treścią:
# Używamy oficjalnego obrazu Python jako podstawy FROM python:3.8-slim # Ustawiamy katalog roboczy WORKDIR /app # Kopiujemy plik requirements.txt i instalujemy zależności COPY requirements.txt ./ RUN pip install --no-cache-dir -r requirements.txt # Kopiujemy kod aplikacji COPY app.py . # Określamy, jak uruchomić aplikację CMD ["python", "app.py"]
Tworzenie pliku requirements.txt
Ten plik zawiera wszystkie zależności, które są wymagane do uruchomienia aplikacji. W naszej prostej aplikacji wystarczy jedna linia:
Flask==2.0.1
Uruchamianie aplikacji w kontenerze
Aby zbudować i uruchomić aplikację w kontenerze, używamy poniższych komend:
docker build -t my_flask_app . docker run -p 5000:5000 my_flask_app
To polecenie uruchomi naszą aplikację na porcie 5000. Aby zweryfikować działanie, otwórz przeglądarkę i przejdź na adres http://localhost:5000
.
Docker Compose dla zarządzania aplikacją
Docker Compose umożliwia łatwe zarządzanie aplikacjami składającymi się z wielu kontenerów. Stwórz plik docker-compose.yml
:
version: '3' services: web: build: . ports: - "5000:5000"
Następnie uruchom aplikację za pomocą jednego polecenia:
docker-compose up
Podsumowanie i dalsze kroki
Tworzenie i uruchamianie aplikacji webowej w Dockerze jest proste i efektywne. Ta umiejętność pozwala na tworzenie skalowalnych, łatwych do wdrożenia aplikacji. Zachęcam do eksperymentowania z dodawaniem nowych funkcji oraz poznawania bardziej zaawansowanych możliwości Docker Compose.