Подтвердить что ты не робот

Что такое свисающее изображение и что такое неиспользуемое изображение?

В docker документация об удалении изображения докеров можно использовать флаг -a для

Удалите все неиспользуемые изображения, а не только болтающиеся

и позже

Удалите все оборванные изображения. Если указано значение -a, также будут удалены все изображения, на которые не ссылается какой-либо контейнер.

Может кто-нибудь объяснить мне, какие оборванные изображения и какая разница между оборванными и неиспользуемыми изображениями?

4b9b3361

Ответ 1

Неиспользуемое изображение означает, что оно не было назначено или использовано в контейнере. Например, при запуске docker ps -a - в нем будут перечислены все ваши завершенные и запущенные в данный момент контейнеры. Любые изображения, показанные как используемые внутри любого из контейнеров, являются "использованным изображением".

С другой стороны, висящее изображение просто означает, что вы создали новую сборку изображения, но ему не дали новое имя. Таким образом, старые образы, которые у вас есть, становятся "висячим образом" Это старые изображения без тегов, которые отображают " <none> " в своем имени при запуске docker images.

При выполнении удаления docker system prune -a он удалит неиспользуемые и висящие изображения. Поэтому любые изображения, используемые в контейнере, вне зависимости от того, были ли они завершены или запущены в данный момент, НЕ будут затронуты.

Ответ 2

Самый безопасный и простой способ очистки свисающих изображений

docker images --quiet --filter=dangling=true | xargs --no-run-if-empty docker rmi

Изображения Docker состоят из нескольких слоев. Висячие изображения - это слои, которые не имеют отношения к помеченным изображениям. Они больше не служат цели и занимают место на диске.

Примечание. Я рекомендую не использовать prune в рабочей среде, поскольку docker system prune -a удалит все изображения, на которые не ссылается контейнер, с помощью которых мы не можем вернуться к предыдущему выпуску.

Чтобы отобразить висящие изображения, добавив флаг фильтра, -f со значением dangling=true к docker images.

Список оборванных изображений

docker images -f dangling=true

Удалить оборванные изображения

docker rmi $(docker images -f dangling=true -q)

ИЛИ

docker images --quiet --filter=dangling=true | xargs --no-run-if-empty docker rmi

Когда мы запускаем какие-либо задания cron для удаления висящих вещей, используйте приведенное выше, чтобы убедиться, что задание выполняется успешно. Как и в Jenkins, если мы запустим работу в свободном стиле с запятой, запятая, работа никогда не потерпит неудачу, даже если в машине не будет болтаться.

Это самый безопасный и простой способ очистить висящие образы и вернуть наше дисковое пространство для использования.

Ответ 3

Изображения в докере ссылаются на дайджест sha256, часто называемый идентификатором изображения. Этот дайджест - это все, что вам нужно для того, чтобы изображение существовало на хосте docker. Как правило, у вас будут теги, указывающие на эти дайджесты, например. ярлык busybox: последние текущие указывает на идентификатор изображения c30178c523... в моей системе. Несколько тегов могут указывать на одно и то же изображение, и любой тег можно изменить, указывая на другой идентификатор, например. когда вы вытаскиваете новую копию busybox: последний или создайте новую версию образа приложения.

Висячие изображения - это изображения, которые не имеют тега, и не имеют дочернего образа (например, старого изображения, использующего другую версию FROM busybox:latest), указывая на них. У них, возможно, был указатель, указывающий на них раньше, и этот тег позже изменился. Или они, возможно, никогда не имели тега (например, вывод docker build без включения опции тега). Как правило, они безопасны для удаления, пока не запущены все контейнеры, которые ссылаются на старый идентификатор изображения. Основная причина, чтобы держать их вокруг - для создания кеширования.

Кроме того, вы можете загружать изображения, которые в настоящее время не используются контейнерами (включая остановленные контейнеры). Они полностью отличаются от оборванных изображений и могут быть безопасными для удаления, если вы не планируете использовать их в будущем, или не против загрузки другой копии, когда они вам понадобятся.