Läsa Dockerfiles och köra containers

Containerisering och virtualiseringskoncept

Julia Ostheimer

Freelance AI Consultant

Sammanfattning av Docker-begrepp

 

Från Dockerfile till Docker-container

Containerisering och virtualiseringskoncept

Docker-instruktioner vs. Docker-kommandon

  • Docker-instruktioner beskriver hur en Docker-image byggs

Docker-instruktioner i Dockerfile

  • Docker-kommandon: Kommandon via kommandoradsgränssnittet (CLI)

Docker-kommandon i CLI

Containerisering och virtualiseringskoncept

Dockerfile-format

 

Dockerfile - Kommentar

Containerisering och virtualiseringskoncept

Dockerfile-format

 

Dockerfile - Instruktion

Containerisering och virtualiseringskoncept

Dockerfile-format

 

Dockerfile - Kommando för Docker-instruktion

Containerisering och virtualiseringskoncept

Dockerfile-format

 

Dockerfile - Argument till Docker-instruktion

Containerisering och virtualiseringskoncept

Sekventiell ordning i Dockerfiles

  • Körs i sekventiell ordning
  • Början av en Dockerfile:
    • Metadata
    • Kommentarer
    • Argument
    • FROM-instruktion
Containerisering och virtualiseringskoncept

Översikt över Docker-instruktioner

  • Viktiga Docker-instruktioner
    • FROM
    • COPY
    • RUN
    • ENTRYPOINT
Containerisering och virtualiseringskoncept

FROM-instruktionen

  • Anger en befintlig Docker-image
  • Definierar den image vi bygger på
    • "Startpunkt"  

Syntax:

FROM <name_of_image>

Exempel:

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

COPY-instruktionen

  • Kopierar filer eller mappar
    • Från källa (<source>) till destination (<destination>)
    • Filer som behövs i efterföljande Docker-instruktioner  

Syntax:

COPY <source> <destination>

Exempel:

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

RUN-instruktionen

  • Kör ett kommando inuti en container
    • Kan vara vilket kommando som helst som fungerar i ett CLI

 

Syntax:

RUN <command>

Exempel:

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

ENTRYPOINT-instruktionen

  • Definierar containerns standardbeteende
    • Anger vilket kommando som körs vid start
    • Containerns primära syfte  

Syntax:

ENTRYPOINT ["command", "argument"]

Exempel:

# Run the script when the container starts
ENTRYPOINT ["python", "hello_world.py"]
Containerisering och virtualiseringskoncept

Sätta ihop instruktioner till en Dockerfile

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

Sätta ihop instruktioner till en Dockerfile

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

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

Sätta ihop instruktioner till en 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
Containerisering och virtualiseringskoncept

Sätta ihop instruktioner till en 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"]
Containerisering och virtualiseringskoncept

Kommandot docker build

  • Bygger en Docker-image från en Dockerfile
    • Dockerfile måste finnas i byggkontexten (<context>)
    • Körs som ett kommando via Docker-klienten i CLI

 

Syntax:

docker build <context>
Containerisering och virtualiseringskoncept

Kommandot docker run

  • Skapar och kör en Docker-container från en Docker-image
    • Docker-imagen anges som argument (<name_of_image>)
    • Körs som ett kommando via Docker-klienten i CLI

 

Syntax:

docker run <name_of_image>
Containerisering och virtualiseringskoncept

Nu kör vi en övning!

Containerisering och virtualiseringskoncept

Preparing Video For Download...