Dockerfiles lezen en containers draaien

Concepten van containerization en virtualisatie

Julia Ostheimer

Freelance AI Consultant

Herhaling van Docker-termen

 

Van Dockerfile naar Docker-container

Concepten van containerization en virtualisatie

Docker-instructies vs. Docker-commando's

  • Docker-instructies beschrijven hoe je een Docker-image bouwt

Docker-instructies in Dockerfile

  • Docker-commando's: opdrachten via de Command Line Interface (CLI)

Docker-commando's in CLI

Concepten van containerization en virtualisatie

Opmaak van een Dockerfile

 

Dockerfile - Commentaar

Concepten van containerization en virtualisatie

Opmaak van een Dockerfile

 

Dockerfile - Instructie

Concepten van containerization en virtualisatie

Opmaak van een Dockerfile

 

Dockerfile - Opdracht van Docker-instructie

Concepten van containerization en virtualisatie

Opmaak van een Dockerfile

 

Dockerfile - Argument van Docker-instructie

Concepten van containerization en virtualisatie

Volgorde in Dockerfiles

  • Uitvoering in volgorde
  • Begin van een Dockerfile:
    • Metadata
    • Commentaar
    • Argumenten
    • FROM-instructie
Concepten van containerization en virtualisatie

Overzicht van Docker-instructies

  • Belangrijke Docker-instructies
    • FROM
    • COPY
    • RUN
    • ENTRYPOINT
Concepten van containerization en virtualisatie

FROM-instructie

  • Verwijst naar een bestaande Docker-image
  • Bepaalt de image waarop we bouwen
    • Startpunt  

Syntaxis:

FROM <name_of_image>

Voorbeeld:

# Bepaal de image waarop je bouwt
FROM python:3.10
Concepten van containerization en virtualisatie

COPY-instructie

  • Kopieert bestanden of mappen
    • Van bron (<source>) naar doel (<destination>)
    • Bestanden nodig voor volgende Docker-instructies  

Syntaxis:

COPY <source> <destination>

Voorbeeld:

# Kopieer bestanden/mappen naar de hoofdmap van de container
COPY . .
Concepten van containerization en virtualisatie

RUN-instructie

  • Voert een opdracht uit in een container
    • Elke CLI-opdracht is mogelijk

 

Syntaxis:

RUN <command>

Voorbeeld:

# Installeer de afhankelijkheden van de app
RUN pip install -r requirements.txt
Concepten van containerization en virtualisatie

ENTRYPOINT-instructie

  • Stelt het standaardgedrag van de container in
    • Geeft de opdracht bij start op
    • Primaire doel van de container  

Syntaxis:

ENTRYPOINT ["command", "argument"]

Voorbeeld:

# Start het script bij het starten van de container
ENTRYPOINT ["python", "hello_world.py"]
Concepten van containerization en virtualisatie

Instructies samenvoegen tot Dockerfile

# Bepaal de image waarop je bouwt
FROM python:3.10
Concepten van containerization en virtualisatie

Instructies samenvoegen tot Dockerfile

# Bepaal de image waarop je bouwt
FROM python:3.10

# Kopieer bestanden/mappen naar de hoofdmap van de container
COPY . .
Concepten van containerization en virtualisatie

Instructies samenvoegen tot Dockerfile

# Bepaal de image waarop je bouwt
FROM python:3.10

# Kopieer bestanden/mappen naar de hoofdmap van de container
COPY . .

# Installeer de afhankelijkheden van de app
RUN pip install -r requirements.txt
Concepten van containerization en virtualisatie

Instructies samenvoegen tot Dockerfile

# Bepaal de image waarop je bouwt
FROM python:3.10

# Kopieer bestanden/mappen naar de hoofdmap van de container
COPY . .

# Installeer de afhankelijkheden van de app
RUN pip install -r requirements.txt

# Start het script bij het starten van de container
ENTRYPOINT ["python", "hello_world.py"]
Concepten van containerization en virtualisatie

docker build-commando

  • Bouwt een Docker-image vanuit een Dockerfile
    • Dockerfile moet in de buildcontext staan (<context>)
    • Uit te voeren als opdracht via de Docker CLI

 

Syntaxis:

docker build <context>
Concepten van containerization en virtualisatie

docker run-commando

  • Maakt en draait een Docker-container uit een Docker-image
    • Docker-image opgeven als argument (<name_of_image>)
    • Uit te voeren als opdracht via de Docker CLI

 

Syntaxis:

docker run <name_of_image>
Concepten van containerization en virtualisatie

Laten we oefenen!

Concepten van containerization en virtualisatie

Preparing Video For Download...