Docker: висячие изображения - PullRequest
       3

Docker: висячие изображения

1 голос
/ 06 февраля 2020

Я пытаюсь понять следующие команды

docker image prune
docker image prune -a

Согласно документации

docker image prune: Удаляет висячие изображения

docker image prune -a: удаляет висячие и неиспользуемые изображения`

Я пытаюсь понять разницу между висящим и неиспользуемым изображением.

Согласно этот стекопоток post, неиспользуемое изображение - это изображение, которое не было назначено или использовано в контейнере.

В общем, если я запусту

docker pull hello-world

(никогда не выполняя команду docker run hello-world)

Тогда изображение для hello-world будет неиспользованным изображением ??

Как тогда создаются висячие изображения?

Согласно приведенному выше сообщению о переполнении стека, «повисшее изображение просто означает, что вы создали новую сборку образа, но ему не дали новое имя. Таким образом, старые образы, которые у вас есть, становятся свисающее изображение "."

Что именно это значит? Т.е. что значит создать новую сборку образа? Как вы создаете новую сборку образа? Что такое непомеченные изображения?

Может кто-нибудь дать мне пример того, как создается свисающее изображение?

Ответы [ 3 ]

2 голосов
/ 07 февраля 2020

Повисшее изображение просто означает, что у вас есть изображение, но к нему не прикреплены теги. ( Обрезка неиспользованных Docker объектов )

Как вы к нему доберетесь? путем создания изображения с тем же именем и тем же тегом. Это обычный, а не единственный случай.

  1. Вы создаете изображение my.image.example.com и помечаете его latest.
  2. Вы можете вытянуть свое изображение sh /, сославшись на него как my.image.example.com:lastest
  3. Вы внесли некоторые изменения и восстановили свое изображение. То же, что вы делали в шаге 1.
  4. У вас новый идентификатор изображения с тем же именем и тем же тегом.
  5. Первое изображение теперь свисает , вы может решить эту проблему только используя полный SHA.

Это очень высокое и обобщенное описание тега изображения;

Большинство, если не все компьютерные программы, состоят из имени и версия. Например, ваша ОС может быть Windows 10, OSX Catalina (14 Mojave) и др. c.

В мире контейнеров тег image используется для адресации версии программного обеспечения. Имя изображения - это само программное обеспечение.

При загрузке изображения вы указываете имя изображения и его «версию» (то есть тег). Это общий вариант использования. Теги могут быть использованы для многих целей; может быть много тегов для одного изображения, но не один тег, который ссылается на несколько изображений.

Я думаю, Docker обзор может быть хорошим местом для получения некоторого фундаментального фона платформа

2 голосов
/ 06 февраля 2020

Предположим, вы создаете образ на основе файла Docker с тегом "asool / user-service":

docker build -t asool/user-service .

Образ успешно создан и имеет идентификатор "5e8d606c6d cc». Следовательно, вы изменяете содержимое этого Dockerfile, например, добавляете строку RUN apk add vim. Затем вы создаете образ с тем же тегом «asool / user-service»:

docker build -t asool/user-service .

Создается новое изображение с тегом «asool / user-service», имеющее другой Я БЫ. Хотя появилось новое изображение, старое изображение с идентификатором "5e8d606c6d cc" все еще существует. Это изображение потеряло свой тег, имя и, скорее всего, цель. Это изображение называется висячим.

Источник: Учебное пособие по Dockerfile, пример - (Часть I - Основы)

1 голос
/ 07 февраля 2020

Давайте go один за другим:

Тогда изображение для hello-world будет неиспользованным изображением ??

Да.

Как создаются висячие изображения?

В вашей ситуации вы можете создать новую версию того же изображения или вы можете пометить свое изображение, тогда у вас будет висящее изображение .

Что именно это означает? Т.е. что значит создать новую сборку образа? Как вы создаете новую сборку образа?

Вы можете создать образ в любое время, запустив команду docker build или даже извлекать откуда-нибудь более новую версию docker pull.

Что такое непомеченные изображения?

Каждое изображение имеет тег, как указано в документации, вы можете пометить изображения с помощью следующей команды: docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG] Когда вы снова удаляете теги или создаете изображение, обычно у вас получается изображение без тега.

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

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

В конце приведена повторяющаяся ссылка на этот вопрос: Тот же вопрос с ответом

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...