Čtení Dockerfilů a spouštění kontejnerů

Kontejnerizace a virtualizace – základní koncepty

Julia Ostheimer

Freelance AI Consultant

Shrnutí Docker pojmů

 

Z Dockerfile do Docker kontejneru

Kontejnerizace a virtualizace – základní koncepty

Docker instrukce vs. Docker příkazy

  • Docker instrukce popisují, jak sestavit Docker image

Docker instrukce v Dockerfile

  • Docker příkazy: příkazy přes rozhraní příkazové řádky (CLI)

Docker příkazy v CLI

Kontejnerizace a virtualizace – základní koncepty

Formát Dockerfile

 

Dockerfile – komentář

Kontejnerizace a virtualizace – základní koncepty

Formát Dockerfile

 

Dockerfile – instrukce

Kontejnerizace a virtualizace – základní koncepty

Formát Dockerfile

 

Dockerfile – příkaz Docker instrukce

Kontejnerizace a virtualizace – základní koncepty

Formát Dockerfile

 

Dockerfile – argument Docker instrukce

Kontejnerizace a virtualizace – základní koncepty

Sekvenční pořadí v Dockerfilech

  • Vykonávání v sekvenčním pořadí
  • Začátek Dockerfile:
    • Metadata
    • Komentáře
    • Argumenty
    • Instrukce FROM
Kontejnerizace a virtualizace – základní koncepty

Přehled Docker instrukcí

  • Klíčové Docker instrukce
    • FROM
    • COPY
    • RUN
    • ENTRYPOINT
Kontejnerizace a virtualizace – základní koncepty

Instrukce FROM

  • Určuje existující Docker image
  • Definuje image, na kterém stavíme
    • „Výchozí bod“  

Syntaxe:

FROM <name_of_image>

Příklad:

# Define the image on which to build
FROM python:3.10
Kontejnerizace a virtualizace – základní koncepty

Instrukce COPY

  • Kopíruje soubory nebo adresáře
    • Ze zdroje (<source>) do cíle (<destination>)
    • Soubory potřebné v dalších Docker instrukcích  

Syntaxe:

COPY <source> <destination>

Příklad:

# Copy files/folders to the main folder of the container
COPY . .
Kontejnerizace a virtualizace – základní koncepty

Instrukce RUN

  • Spustí příkaz uvnitř kontejneru
    • Může to být jakýkoli příkaz spustitelný v CLI

 

Syntaxe:

RUN <command>

Příklad:

# Install the application's dependencies
RUN pip install -r requirements.txt
Kontejnerizace a virtualizace – základní koncepty

Instrukce ENTRYPOINT

  • Definuje výchozí chování kontejneru
    • Určuje příkaz spouštěný při startu
    • Hlavní účel kontejneru  

Syntaxe:

ENTRYPOINT ["command", "argument"]

Příklad:

# Run the script when the container starts
ENTRYPOINT ["python", "hello_world.py"]
Kontejnerizace a virtualizace – základní koncepty

Sestavení instrukcí do Dockerfile

# Define the image on which to build
FROM python:3.10
Kontejnerizace a virtualizace – základní koncepty

Sestavení instrukcí do Dockerfile

# Define the image on which to build
FROM python:3.10

# Copy files/folders to the main folder of the container
COPY . .
Kontejnerizace a virtualizace – základní koncepty

Sestavení instrukcí do Dockerfile

# Define the image on which to build
FROM python:3.10

# Copy files/folders to the main folder of the container
COPY . .

# Install the application's dependencies
RUN pip install -r requirements.txt
Kontejnerizace a virtualizace – základní koncepty

Sestavení instrukcí do Dockerfile

# Define the image on which to build
FROM python:3.10

# Copy files/folders to the main folder of the container
COPY . .

# Install the application's dependencies
RUN pip install -r requirements.txt

# Run the script when the container starts
ENTRYPOINT ["python", "hello_world.py"]
Kontejnerizace a virtualizace – základní koncepty

Příkaz docker build

  • Sestaví Docker image z Dockerfile
    • Dockerfile musí být v kontextu sestavení (<context>)
    • Spouští se příkazem přes Docker klient v CLI

 

Syntaxe:

docker build <context>
Kontejnerizace a virtualizace – základní koncepty

Příkaz docker run

  • Vytvoří a spustí Docker kontejner z Docker image
    • Docker image musí být zadán jako argument (<name_of_image>)
    • Spouští se příkazem přes Docker klient v CLI

 

Syntaxe:

docker run <name_of_image>
Kontejnerizace a virtualizace – základní koncepty

Pojďme procvičovat!

Kontejnerizace a virtualizace – základní koncepty

Preparing Video For Download...