Управление образами
Редактировать на GitHubВопросы
Какие команды порождают слои?
RUN порождает слои
Что за none образы можно увидеть в docker images?
Каждый образ в докере состоит из слоев, и имеет дочерние связи с другими слоями. По умолчанию они лежат в /var/lib/docker/graph.
И когда мы закачиваем новую версию образа, то образ подгружает слой раз за разом. И получается что none это лишь один из слоев.
Этот образ называется промежуточным. Их можно увидеть с помощью docker images -a
Также, есть обособленные образы none:none. Например, когда мы собираем примерно такой же образ, но например с иной версией операционной системы.
И в этом случае будет создан именно такой образ. Поскольку мы пересобрали образ с помощью докерфайла, а старая система стала обособленной.
Можно почистить так:
docker rmi $(docker images -f "dangling=true" -q)Что такое squash слоёв?
Это штука, позволяющая все слои спушить в один. В качестве побочного эффекта - размер образа уменьшается. Но он ломает кэширование, поскольку у нас всё в одном слое. С одной стороны инструмент мощный. Но нужно обращаться осторожно. Лучше для базового образа использовать. Заранее набросал, и вот у тебя образ.
В папке /var/lib/docker/ как понять какая папка к какому контейнеру принадлежит
Например можно попробовать так:
docker inspect $(docker ps -qa) | jq -r 'map([.Name, .GraphDriver.Data.MergedDir]) | .[] | "\(.[0])\t\(.[1])"'Последнее обновление: 11 сент. 2025 г., 14:56:43