@wideShift

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

1)Если контейнер создается на основе образа, то почему я не могу удалить образ? Зачем это зависимость? - Нельзя удалить образ (не принудительно), который используется.
2)Если удалить образ, который используется в контейнере, то почему контейнер не падает?
  • Вопрос задан
  • 236 просмотров
Решения вопроса 1
shurshur
@shurshur
Сисадмин, просто сисадмин...
Образ - это не какой-то набор файлов. Это по сути список слоёв (fslayer), которые могут быть общими у разных образов. Имя образа (с тэгом) - это ссылка на id образа. У образа может быть несколько имён (например, foobar:1.2.3 и foobar:latest). Удаление образа по имени имени не удаляет образ, оно удаляет лишь имя, затем если у id образа больше нет других имён и образ не используется больше никем удаляет те fslayer образа, которые заведомо не нужны другим образам и контейнерам. Поэтому иногда docker rmi говорит всего лишь "untagged имя_образа", а иногда реально удаляет какие-то слои.

$ docker pull alpine
Using default tag: latest
latest: Pulling from library/alpine
540db60ca938: Pull complete 
Digest: sha256:69e70a79f2d41ab5d637de98c1e0b055206ba40a8145e7bddb55ccc04e13cf8f
Status: Downloaded newer image for alpine:latest
docker.io/library/alpine:latest
$ docker tag alpine foo/bar/lorem/ipsum:some.tag
$ docker rmi alpine
Untagged: alpine:latest
Untagged: alpine@sha256:69e70a79f2d41ab5d637de98c1e0b055206ba40a8145e7bddb55ccc04e13cf8f
$ docker rmi foo/bar/lorem/ipsum:some.tag
Untagged: foo/bar/lorem/ipsum:some.tag
Deleted: sha256:6dbb9cc54074106d46d4ccb330f2a40a682d49dda5f4844962b7dce9fe44aaec
Deleted: sha256:b2d5eeeaba3a22b9b8aa97261957974a6bd65274ebd43e1d81d0a7b8b752b116


При создании контейнера поверх слоённой файловой системы образа создаётся новый слой для собственных файлов контейнера. Поэтому физически образ нельзя до конца удалить, пока есть хоть один контейнер на его базе.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы