Введение в образы в Docker
Образ на диске - это отдельная вещь: шаблон остаётся, даже когда контейнеры из него уже удалены. Контейнер - рабочая копия с собственными файлами и именем. Образ - неизменная заготовка, из которой эти копии создают. Убрали все контейнеры - шаблон всё равно лежит рядом.
Так устроено нарочно. Один шаблон нужен для многих запусков. Каждый новый контейнер берёт файлы из той же заготовки, а не тащит на диск полную копию образа на каждый раз. Место на диске для шаблона платят один раз, пока он нужен.
Удаление контейнера шаблон не стирает. Пропадает только запись о копии: имя, свои файлы внутри, пометка об остановке. Заготовка из образа остаётся. Из неё снова можно создать другой контейнер с чистым набором файлов из шаблона.
Пока шаблон лежит на диске, запуск не тянет его из сети заново. Служба находит готовую заготовку локально и быстрее создаёт копию. Если шаблон убрать, следующий запуск снова положит его на диск - или попросит скачать, если заготовки ещё нет.
Контейнеры и образы поэтому смотрят разными списками. В одном - работающие и остановленные копии, в другом - только шаблоны. Путать их неудобно: остановленный контейнер не превращается в строку образа, а образ не исчезает, когда убрали последний контейнер из него.
Имеет смысл помнить: образ - это не «ещё один контейнер в списке», а общая основа. Пока он на диске, из него можно снова и снова поднимать новые копии, не восстанавливая среду вручную и не теряя неизменный набор файлов шаблона.