backup: 2026-04-17 11:28
This commit is contained in:
@@ -0,0 +1,35 @@
|
||||
# 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]]
|
||||
Reference in New Issue
Block a user