Docker-Images-Grundlagen
Was sind Docker-Images?
Docker-Images sind schreibgeschützte Vorlagen, die zum Erstellen von Containern verwendet werden. Sie enthalten vorkonfigurierte Softwareumgebungen, Anwendungscode, Abhängigkeiten und Laufzeiteinstellungen. Docker-Images dienen als Blaupausen für die Bereitstellung konsistenter und reproduzierbarer Anwendungsumgebungen auf verschiedenen Systemen.
Hauptkomponenten von Docker-Images
graph TD
A[Docker-Image] --> B[Basisschicht]
A --> C[Anwendungsschicht]
A --> D[Konfigurationsschicht]
Komponente |
Beschreibung |
Beispiel |
Basisschicht |
Grundlegendes Betriebssystem |
Ubuntu 22.04 |
Anwendungsschicht |
Software und Abhängigkeiten |
Python 3.9, nginx |
Konfigurationsschicht |
Laufzeiteinstellungen |
Umgebungsvariablen |
Erstellen eines einfachen Docker-Images
Hier ist ein Beispiel für die Erstellung eines einfachen Python-Webanwendungs-Images:
## Projektverzeichnis erstellen
mkdir docker-demo
cd docker-demo
## Dockerfile erstellen
touch Dockerfile
## Dockerfile-Inhalt
cat > Dockerfile << EOL
FROM ubuntu:22.04
RUN apt-get update && apt-get install -y python3 python3-pip
WORKDIR /app
COPY app.py .
RUN pip3 install flask
EXPOSE 5000
CMD ["python3", "app.py"]
EOL
## Beispiel-Flask-Anwendung erstellen
cat > app.py << EOL
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello():
return "Docker-Image-Beispiel"
if __name__ == '__main__':
app.run(host='0.0.0.0', port=5000)
EOL
## Docker-Image erstellen
docker build -t python-web-app .
Image-Schichten und Speicherung
Docker-Images bestehen aus mehreren schreibgeschützten Schichten. Jede Anweisung im Dockerfile erstellt eine neue Schicht, was eine effiziente Speicherung und schnelle Imageerstellung ermöglicht. Beim Erstellen eines Images zwischerspeichert Docker diese Schichten, um die Build-Zeiten zu optimieren und die Festplattenspeicherplatznutzung zu reduzieren.
Image-Identifizierung
Docker-Images werden durch Folgendes eindeutig identifiziert:
- Repository-Name
- Tag
- Image-ID
Beispiel: ubuntu:22.04
oder python-web-app:latest