Files
SecondBrain/01 Library/02 DevOps/Контейнеризация/Docker/Images, Dockerfile - Docker.md
T
2026-04-17 11:28:35 +03:00

2.9 KiB

status, type, tags, updated, title, created
status type tags updated title created
stable concept
devops
2026-02-27 Images, Dockerfile - Docker 2025-12-17

Images, Dockerfile - Docker

Запуск контейнеров происходит на основе images (образов). Образы собираются с помощью Dockerfile.

Основные инструкции в Dockerfile:

  • FROM - использование базового образа 
  • RUN - выполнение команд и создание слоя образа
  • COPY - копирование в контейнер файлов и папок
  • ADD - аналогично COPY, но с распаковкой архивов

Дополнительные:

  • LABEL - описание метаданных
  • ENV - задание переменных среды
  • CMD - описание команд с аргументами для выполнения при запуске контейнера
  • WORKDIR - задание рабочей директории для следующей инструкции
  • ARG - задание переменных для передачи во время сборки
  • ENTRYPOINT - предоставление команды с аргументами для вызова во время выполнения контейнера
  • VOLUME - создание точки монтирования для работы с docker volume
  • EXPOSE - открытие порта в контейнере

Все эти команды создают отдельный слой (layer) для сборки контейнера

Оптимизация Образа

FROM ubuntu

RUN apt update
RUN apt install python3 -y
RUN apt install python3-dev -y
  • Сокращение инструкций RUN (уменьшение количества слоев)
FROM ubuntu

RUN apt update
RUN apt install python3 python3-dev -y

Docker будет пересобирать только те слои, которые были изменены

FROM ubuntu

RUN apt update && \
	apt install python3 python3-dev -y
  • Удаление кеша пакетных менеджеров
RUN apt update && \
	apt install python3 python3-dev -y \
	rm -rf /var/lib/apt/lists/*
  • Удаление файлов в той же инструкции, где их создавали
  • Инструкции, которые предположительно будут часто изменяться, ставить ниже остальных
  • Сокращение количество инструкций COPY
RUN apt update && \
	apt install python3 python3-dev -y \
	rm -rf /var/lib/apt/lists/*

COPY file1 file2 file3 ./dir
  • Использование легковесных базовых образов, где есть такая возможность