Когда контейнер запускают для короткой проверки, он после завершения остаётся в системе. Сам процесс уже не работает, но запись о контейнере и его writable layer остаются.
Например так:
docker run alpine echo ready
Если делать такие запуски часто, docker ps ничего лишнего не покажет, потому что контейнеры уже остановлены. Но они всё ещё видны через docker ps -a.
Проверить можно так:
docker ps -a
Со временем таких остановленных контейнеров становится много. Они мешают смотреть историю запусков, занимают место и создают мусор при отладке.
Для одноразовых команд добавляют --rm:
docker run --rm alpine echo ready
Теперь контейнер автоматически удалится после завершения команды. Это удобно для curl-проверок, временных shell-сессий, миграций, утилит и быстрых запусков.
Например для сетевой проверки:
docker run --rm curlimages/curl \
curl -I https://example.com
Но --rm не стоит добавлять везде бездумно. Если контейнер падает и нужно посмотреть его состояние, логи или файлы после завершения, автоматическое удаление только помешает.
Для отладки иногда лучше оставить контейнер:
docker run --name debug-app my-image
Для коротких одноразовых команд --rm помогает держать Docker чистым. Для расследования падений лучше сначала сохранить контейнер и удалить его вручную позже.
➡️ DevOps Ready | #совет
