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

Контейнеризация и виртуализация: основные концепции

Julia Ostheimer

Freelance AI Consultant

Повторение терминов Docker

 

От Dockerfile до Docker-контейнера

Контейнеризация и виртуализация: основные концепции

Инструкции Docker и команды Docker

  • Инструкции Docker описывают процесс сборки образа

Инструкции Docker в Dockerfile

  • Команды Docker: команды через интерфейс командной строки (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>

Пример:

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

Инструкция COPY

  • Копирует файлы или директории
    • Из источника (<source>) в место назначения (<destination>)
    • Файлы, необходимые для последующих инструкций Docker  

Синтаксис:

COPY <source> <destination>

Пример:

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

Инструкция RUN

  • Выполняет команду внутри контейнера
    • Подходит любая команда, доступная в CLI

 

Синтаксис:

RUN <command>

Пример:

# Install the application's dependencies
RUN pip install -r requirements.txt
Контейнеризация и виртуализация: основные концепции

Инструкция ENTRYPOINT

  • Определяет поведение контейнера по умолчанию
    • Задаёт команду, выполняемую при запуске
    • Основное назначение контейнера  

Синтаксис:

ENTRYPOINT ["command", "argument"]

Пример:

# Run the script when the container starts
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...