Dockerfiles lesen und Container ausführen

Containerization- und Virtualisierungskonzepte

Julia Ostheimer

Freelance AI Consultant

Docker-Begriffe: Recap

 

Vom Dockerfile zum Docker-Container

Containerization- und Virtualisierungskonzepte

Docker-Anweisungen vs. Docker-Befehle

  • Docker-Anweisungen beschreiben, wie ein Image gebaut wird

Docker-Anweisungen im Dockerfile

  • Docker-Befehle: Befehle über die Command Line Interface (CLI)

Docker-Befehle in der CLI

Containerization- und Virtualisierungskonzepte

Format eines Dockerfiles

 

Dockerfile – Kommentar

Containerization- und Virtualisierungskonzepte

Format eines Dockerfiles

 

Dockerfile – Anweisung

Containerization- und Virtualisierungskonzepte

Format eines Dockerfiles

 

Dockerfile – Befehl einer Docker-Anweisung

Containerization- und Virtualisierungskonzepte

Format eines Dockerfiles

 

Dockerfile – Argument einer Docker-Anweisung

Containerization- und Virtualisierungskonzepte

Reihenfolge in Dockerfiles

  • Ausführung in Reihenfolge
  • Start eines Dockerfiles:
    • Metadaten
    • Kommentare
    • Argumente
    • FROM-Anweisung
Containerization- und Virtualisierungskonzepte

Überblick: Docker-Anweisungen

  • Wichtige Docker-Anweisungen
    • FROM
    • COPY
    • RUN
    • ENTRYPOINT
Containerization- und Virtualisierungskonzepte

FROM-Anweisung

  • Gibt ein bestehendes Docker-Image an
  • Definiert das Basis-Image
    • „Startpunkt“  

Syntax:

FROM <name_of_image>

Beispiel:

# Basis-Image festlegen
FROM python:3.10
Containerization- und Virtualisierungskonzepte

COPY-Anweisung

  • Kopiert Dateien oder Ordner
    • Von Quelle (<source>) nach Ziel (<destination>)
    • Dateien für folgende Docker-Anweisungen  

Syntax:

COPY <source> <destination>

Beispiel:

# Dateien/Ordner ins Hauptverzeichnis des Containers kopieren
COPY . .
Containerization- und Virtualisierungskonzepte

RUN-Anweisung

  • Führt einen Befehl im Container aus
    • Jeder Befehl, der in der CLI laufen könnte

 

Syntax:

RUN <command>

Beispiel:

# Abhängigkeiten der App installieren
RUN pip install -r requirements.txt
Containerization- und Virtualisierungskonzepte

ENTRYPOINT-Anweisung

  • Legt das Standardverhalten des Containers fest
    • Befehl beim Start
    • Hauptzweck des Containers  

Syntax:

ENTRYPOINT ["command", "argument"]

Beispiel:

# Skript beim Start ausführen
ENTRYPOINT ["python", "hello_world.py"]
Containerization- und Virtualisierungskonzepte

Anweisungen zu Dockerfile zusammenführen

# Basis-Image festlegen
FROM python:3.10
Containerization- und Virtualisierungskonzepte

Anweisungen zu Dockerfile zusammenführen

# Basis-Image festlegen
FROM python:3.10

# Dateien/Ordner ins Hauptverzeichnis des Containers kopieren
COPY . .
Containerization- und Virtualisierungskonzepte

Anweisungen zu Dockerfile zusammenführen

# Basis-Image festlegen
FROM python:3.10

# Dateien/Ordner ins Hauptverzeichnis des Containers kopieren
COPY . .

# Abhängigkeiten der App installieren
RUN pip install -r requirements.txt
Containerization- und Virtualisierungskonzepte

Anweisungen zu Dockerfile zusammenführen

# Basis-Image festlegen
FROM python:3.10

# Dateien/Ordner ins Hauptverzeichnis des Containers kopieren
COPY . .

# Abhängigkeiten der App installieren
RUN pip install -r requirements.txt

# Skript beim Start ausführen
ENTRYPOINT ["python", "hello_world.py"]
Containerization- und Virtualisierungskonzepte

Befehl: docker build

  • Baut ein Docker-Image aus einem Dockerfile
    • Dockerfile muss im Build-Kontext liegen (<context>)
    • Als CLI-Befehl mit dem Docker-Client ausführen

 

Syntax:

docker build <context>
Containerization- und Virtualisierungskonzepte

Befehl: docker run

  • Erstellt und startet einen Container aus einem Image
    • Docker-Image als Argument angeben (<name_of_image>)
    • Als CLI-Befehl mit dem Docker-Client ausführen

 

Syntax:

docker run <name_of_image>
Containerization- und Virtualisierungskonzepte

Lass uns üben!

Containerization- und Virtualisierungskonzepte

Preparing Video For Download...