Files
SecondBrain/05 NoxPKB/wiki/Docker—Images & Dockerfile (one-screen).md
T
2026-04-17 11:28:35 +03:00

36 lines
1.9 KiB
Markdown

# Docker — Images & Dockerfile (one-screen)
## 1) Image: из чего состоит
**Docker image** собирается из **слоёв (layers)**. Почти каждая инструкция Dockerfile добавляет слой.
Слои кэшируются: при изменении “ранних” слоёв пересобирается всё ниже.
## 2) Ключевые инструкции Dockerfile
- **FROM** — базовый образ.
- **RUN** — команды при сборке (формируют слой).
- **COPY** — копирование файлов/папок в image.
- **ADD** — как COPY, но умеет распаковать архивы (использовать осознанно).
Часто используемые:
- **WORKDIR** — рабочая директория.
- **ENV** — переменные окружения.
- **ARG** — переменные только на этапе build.
- **CMD** — команда по умолчанию (можно переопределять).
- **ENTRYPOINT** — “жёсткая” точка входа.
- **EXPOSE** — документирует порт.
- **VOLUME** — точка монтирования volume.
## 3) Оптимизация образа (практика)
- Склеивать RUN:
```dockerfile
RUN apt update && apt install -y python3 python3-dev \
&& rm -rf /var/lib/apt/lists/*
```
- Чистить кеш пакетного менеджера.
- Удалять временные файлы **в той же инструкции**, где создавались.
- Менее изменчивое — выше, часто меняющееся — ниже.
- COPY делать батчами.
- По возможности брать лёгкие base images.
---
**Source:** [[Images, Dockerfile - Docker|Images, Dockerfile - Docker]]