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.
1mkdir my_flask_app 2cd my_flask_app 3
Zainstaluj Flask wirtualnym środowisku. Dzięki temu unikniesz potencjalnych konfliktów między zależnościami.
1python3 -m venv venv 2source venv/bin/activate 3pip install Flask 4
Kod aplikacji Flask
W pliku app.py
umieść prosty kod aplikacji:
1from flask import Flask 2 3app = Flask(__name__) 4 5@app.route('/') 6def hello_world(): 7 return 'Hello, World!' 8 9if __name__ == '__main__': 10 app.run(host='0.0.0.0', port=5000) 11
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ą:
1# Używamy oficjalnego obrazu Python jako podstawy 2FROM python:3.8-slim 3 4# Ustawiamy katalog roboczy 5WORKDIR /app 6 7# Kopiujemy plik requirements.txt i instalujemy zależności 8COPY requirements.txt ./ 9RUN pip install --no-cache-dir -r requirements.txt 10 11# Kopiujemy kod aplikacji 12COPY app.py . 13 14# Określamy, jak uruchomić aplikację 15CMD ["python", "app.py"] 16
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:
1docker build -t my_flask_app . 2docker run -p 5000:5000 my_flask_app 3
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
:
1version: '3' 2services: 3 web: 4 build: . 5 ports: 6 - "5000:5000" 7
Następnie uruchom aplikację za pomocą jednego polecenia:
1docker-compose up 2
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.