Open neersighted opened 1 year ago
I have the same issue on Macbook M1 with the docker:
docker system info
Client:
Version: 27.0.3
Context: desktop-linux
Debug Mode: false
Plugins:
buildx: Docker Buildx (Docker Inc.)
Version: v0.15.1-desktop.1
Path: /Users/dmitri/.docker/cli-plugins/docker-buildx
compose: Docker Compose (Docker Inc.)
Version: v2.28.1-desktop.1
Path: /Users/dmitri/.docker/cli-plugins/docker-compose
debug: Get a shell into any image or container (Docker Inc.)
Version: 0.0.32
Path: /Users/dmitri/.docker/cli-plugins/docker-debug
desktop: Docker Desktop commands (Alpha) (Docker Inc.)
Version: v0.0.14
Path: /Users/dmitri/.docker/cli-plugins/docker-desktop
dev: Docker Dev Environments (Docker Inc.)
Version: v0.1.2
Path: /Users/dmitri/.docker/cli-plugins/docker-dev
extension: Manages Docker extensions (Docker Inc.)
Version: v0.2.25
Path: /Users/dmitri/.docker/cli-plugins/docker-extension
feedback: Provide feedback, right in your terminal! (Docker Inc.)
Version: v1.0.5
Path: /Users/dmitri/.docker/cli-plugins/docker-feedback
init: Creates Docker-related starter files for your project (Docker Inc.)
Version: v1.3.0
Path: /Users/dmitri/.docker/cli-plugins/docker-init
sbom: View the packaged-based Software Bill Of Materials (SBOM) for an image (Anchore Inc.)
Version: 0.6.0
Path: /Users/dmitri/.docker/cli-plugins/docker-sbom
scout: Docker Scout (Docker Inc.)
Version: v1.10.0
Path: /Users/dmitri/.docker/cli-plugins/docker-scout
Every time I run docker compose up
the new "unnamed" volume is created. And it cannot be deleted with docker volume prune
.
Since my projects has the anonymous volumes for node_modules the volume size is big (300MB+) and after a few months the available space goes to 0.
The docker inspect
shows that these volumes have no labels!
compose.yaml
services:
app:
build:
context: .
ports:
- 8088:8088
volumes:
- ./:/usr/src/app
- /usr/src/app/node_modules
as workaround I can change the volume to named volume with the com.docker.volume.anonymous
label.
services:
app:
build:
context: .
ports:
- 8088:8088
volumes:
- ./:/usr/src/app
- modules:/usr/src/app/node_modules
volumes:
modules:
name: app_node_modules
labels:
- com.docker.volume.anonymous
But I don't like that idea.
Description
Post-https://github.com/moby/moby/pull/44216, anonymous volumes are annotated with the label
com.docker.volume.anonymous
, e.g.:This facilitates the new behavior of not pruning named but unused volumes by default. It appears that anonymous volumes defined at the Compose-file level do not result in an annotated anonymous volume, and thus fail to
docker volume prune
unless the-a
(include named volumes) flag is added.Steps To Reproduce
docker inspect
the container, and then the anonymous volume at/foo/bar
. It will be missing the annotation:Compose Version
Docker Environment
Anything else?
This looks possibly similar to https://github.com/moby/moby/pull/45147 (cc @cpuguy83); without knowing how the implementation works however, I can only guess that one of the following is true:
Originally reported by/credit to @FlowSwift.