Читання Dockerfile та запуск контейнерів

Концепції контейнеризації та віртуалізації

Julia Ostheimer

Freelance AI Consultant

Повторення термінів Docker

 

Від Dockerfile до Docker‑контейнера

Концепції контейнеризації та віртуалізації

Інструкції Docker vs. команди Docker

  • Інструкції Docker описують, як зібрати образ Docker

Інструкції Docker у Dockerfile

  • Команди Docker: виконання через Command Line Interface (CLI)

Команди Docker у CLI

Концепції контейнеризації та віртуалізації

Формат Dockerfile

 

Dockerfile — коментар

Концепції контейнеризації та віртуалізації

Формат Dockerfile

 

Dockerfile — інструкція

Концепції контейнеризації та віртуалізації

Формат Dockerfile

 

Dockerfile — команда інструкції Docker

Концепції контейнеризації та віртуалізації

Формат Dockerfile

 

Dockerfile — аргумент інструкції Docker

Концепції контейнеризації та віртуалізації

Послідовність у Dockerfile

  • Виконання по черзі
  • Початок Dockerfile:
    • Метадані
    • Коментарі
    • Аргументи
    • інструкція FROM
Концепції контейнеризації та віртуалізації

Огляд інструкцій Docker

  • Важливі інструкції Docker
    • FROM
    • COPY
    • RUN
    • ENTRYPOINT
Концепції контейнеризації та віртуалізації

Інструкція FROM

  • Вказує на наявний образ Docker
  • Визначає образ, на основі якого ми будуємо
    • «Відправна точка»  

Синтаксис:

FROM <name_of_image>

Приклад:

# Визначити базовий образ для збірки
FROM python:3.10
Концепції контейнеризації та віртуалізації

Інструкція COPY

  • Копіює файли або каталоги
    • Із джерела (<source>) у місце призначення (<destination>)
    • Файли, потрібні для наступних інструкцій Docker  

Синтаксис:

COPY <source> <destination>

Приклад:

# Скопіювати файли/теки до кореневої теки контейнера
COPY . .
Концепції контейнеризації та віртуалізації

Інструкція RUN

  • Запускає команду в контейнері
    • Будь‑яку команду, яку можна виконати в CLI

 

Синтаксис:

RUN <command>

Приклад:

# Встановити залежності застосунку
RUN pip install -r requirements.txt
Концепції контейнеризації та віртуалізації

Інструкція ENTRYPOINT

  • Визначає типову поведінку контейнера
    • Вказує команду для запуску під час старту
    • Основне призначення контейнера  

Синтаксис:

ENTRYPOINT ["command", "argument"]

Приклад:

# Запустити скрипт під час старту контейнера
ENTRYPOINT ["python", "hello_world.py"]
Концепції контейнеризації та віртуалізації

Збираємо інструкції у Dockerfile

# Define the image on which to build
FROM python:3.10
Концепції контейнеризації та віртуалізації

Збираємо інструкції у Dockerfile

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

# Copy files/folders to the main folder of the container
COPY . .
Концепції контейнеризації та віртуалізації

Збираємо інструкції у 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
Концепції контейнеризації та віртуалізації

Збираємо інструкції у 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"]
Концепції контейнеризації та віртуалізації

Команда docker build

  • Будує образ Docker із Dockerfile
    • Dockerfile має бути в контексті збірки (<context>)
    • Виконується як команда клієнтом Docker через CLI

 

Синтаксис:

docker build <context>
Концепції контейнеризації та віртуалізації

Команда docker run

  • Створює й запускає контейнер Docker з образу
    • Образ потрібно вказати як аргумент (<name_of_image>)
    • Виконується як команда клієнтом Docker через CLI

 

Синтаксис:

docker run <name_of_image>
Концепції контейнеризації та віртуалізації

Давайте потренуємось!

Концепції контейнеризації та віртуалізації

Preparing Video For Download...