Есть несколько вещей, которые могут происходить здесь.
Если вы неоднократно запускаете docker-compose up -d
, он попытается сохранить существующие контейнеры живыми. Если вы находитесь в обычном цикле разработки и постоянно docker-compose stop app; docker-compose up --build -d
, это только перезапустит остановленные контейнеры, поэтому в этой последовательности контейнер базы данных никогда не будет остановлен и вообще удален;у вас просто будет тот же контейнер базы данных.
Второе, что происходит, - это то, что Redis Dockerfile объявляет VOLUME /data
. Если вы не укажете ничего для этого каталога с помощью объявления volumes:
, Docker создаст анонимный том для этого каталога. Docker Compose будет отслеживать их, и анонимный том будет оставаться связанным с конкретной службой, пока вы явно не docker-compose down -v
или не перезапустите службу с помощью docker-compose up --renew-anon-volumes
.