# Docker часть 2-3
Что нужно сделать:
Что нужно сделать:
1. Придумать и описать сценарий использования кэша для сборки, который даст неожиданный результат (для наивного пользователя, который о кэше не задумывается и просто жмет docker build)
2. Придумать и описать сценарий появления мусора в истории слоев образа, который будет незаметен при запуске контейнера из финального образа. Желательно, чтоб этот мусор неадекватно увеличивал размер образа. (без использования docker commit, с ним все очевидно )
Каждый из сценариев опишите как можно более подробно, чтоб его можно было взять, воспроизвести по вашему описанию и удивиться.
Что показать ментору:
Текст, содержащий оба этих сценария подробно описанных и отражающих, что вы разобрались в слоях и в кэше.
1. Для примера пользы использования кэша сделаю вот такой простенький докерфайл:
```
FROM ubuntu:22.04
RUN apt-get update && apt-get -y upgrade
COPY . /app
CMD python /app/app.py
```
Если выполнять билд без кэша `--no-cache` он будет выполняться дольше, чем если бы использовался кэш.
То есть добавляя какой-то новый слой к этим слоям и собирая новый образ, у нас будут использоваться кэши тех слоев которые ранее были сбилжены.
Условно добавив еще какой слой RUN, у нас предыдущие слои, которые я описал выше докер возьмет из кэша.
2. Создаем вот такой простой докер файл:
```
FROM ubuntu:22.04
COPY . /app
```
Из предыдущего примера у меня остался образ ubuntu, теперь можно в этот образ запихнуть файл, который будет весить условно 1гб
Для начала создается файл.
`touch file.txt`
Задаём ему размер
`truncate -s 1g file.txt`
Делаем build нашего образа.
`docker build -t mypro .`
После чего у нас появляется image с размером 1.22Gb
```
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
mypro latest 8a1eff4adce1 23 seconds ago 1.22GB
```
Теперь если сделать на основе этого проекта новый билд, условно даже поменяв размер файл на 700m он будет записан поверх этого билда.
```
FROM mypro
COPY . /app
```
```
truncate -s 700m file.txt
docker build -t mypro3 .
```
И получаем:
```
docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
mypro3 latest 366a288fcde7 13 seconds ago 1.44GB
```