Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

docker system prune --volumes removes more than volumes #5272

Open
stavros-k opened this issue Jul 19, 2024 · 1 comment
Open

docker system prune --volumes removes more than volumes #5272

stavros-k opened this issue Jul 19, 2024 · 1 comment

Comments

@stavros-k
Copy link

stavros-k commented Jul 19, 2024

Description

Running docker system prune --volumes removes also networks and images.

Reproduce

  1. Run docker system prune --volumes
  2. See result of deleted networks and images

Expected behavior

docker system prune --volumes to remove only volumes

docker version

Client: Docker Engine - Community
 Version:           27.0.3
 API version:       1.46
 Go version:        go1.21.11
 Git commit:        7d4bcd8
 Built:             Sat Jun 29 00:02:23 2024
 OS/Arch:           linux/amd64
 Context:           default

Server: Docker Engine - Community
 Engine:
  Version:          27.0.3
  API version:      1.46 (minimum version 1.24)
  Go version:       go1.21.11
  Git commit:       662f78c
  Built:            Sat Jun 29 00:02:23 2024
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.7.19
  GitCommit:        2bf793ef6dc9a18e00cb12efb64355c2c9d5eb41
 runc:
  Version:          1.7.19
  GitCommit:        v1.1.13-0-g58aa920
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0

docker info

❯ docker info
Client: Docker Engine - Community
 Version:    27.0.3
 Context:    default
 Debug Mode: false
 Plugins:
  buildx: Docker Buildx (Docker Inc.)
    Version:  v0.15.1
    Path:     /usr/libexec/docker/cli-plugins/docker-buildx
  compose: Docker Compose (Docker Inc.)
    Version:  v2.28.1
    Path:     /usr/libexec/docker/cli-plugins/docker-compose

Server:
 Containers: 1
  Running: 1
  Paused: 0
  Stopped: 0
 Images: 62
 Server Version: 27.0.3
 Storage Driver: overlay2
  Backing Filesystem: extfs
  Supports d_type: true
  Using metacopy: false
  Native Overlay Diff: true
  userxattr: false
 Logging Driver: json-file
 Cgroup Driver: systemd
 Cgroup Version: 2
 Plugins:
  Volume: local
  Network: bridge host ipvlan macvlan null overlay
  Log: awslogs fluentd gcplogs gelf journald json-file local splunk syslog
 Swarm: inactive
 Runtimes: io.containerd.runc.v2 runc
 Default Runtime: runc
 Init Binary: docker-init
 containerd version: 2bf793ef6dc9a18e00cb12efb64355c2c9d5eb41
 runc version: v1.1.13-0-g58aa920
 init version: de40ad0
 Security Options:
  apparmor
  seccomp
   Profile: builtin
  cgroupns
 Kernel Version: 6.8.0-38-generic
 Operating System: Ubuntu 24.04 LTS
 OSType: linux
 Architecture: x86_64
 CPUs: 20
 Total Memory: 62.54GiB
 Name: skois-tuxedo-infinity-book-pro-gen8-mk1
 ID: 94c40e6d-b572-4a2f-a475-02a342b0cf77
 Docker Root Dir: /var/lib/docker
 Debug Mode: false
 Experimental: false
 Insecure Registries:
  127.0.0.0/8
 Live Restore Enabled: false

Additional Info

❯ docker system prune --volumes
WARNING! This will remove:
  - all stopped containers
  - all networks not used by at least one container
  - all anonymous volumes not used by at least one container
  - all dangling images
  - unused build cache

Are you sure you want to continue? [y/N] y
Deleted Networks:
8caff21ff04f28e755560477970075b7_default
f9be94402e59ef962fdde322e0e94f0c_default
29e9cd760014396211de8324e775d7bb_default
b655b06ebcfaeb560954ed06899eb1bf_default
14c34e35e19dd83aa1077259a1c1c46d_default
323e14b0d04bbbf5bfa8015d6e444e6e_default
b9412eeb2d979141074dc9177d938528_default
0664147dbf1220bbbc5d60b9f7985d75_default
339b39f85e2961cf31d1d457b29dd414_default
7e410146be4767c26735a0f09a1e071d_default
285969ed2330fceaf96c5f616cd78f2e_default
b4eb90af7497082c7ce56b072e34a3c8_default
835b656378aae447ccb9f2d4add0d831_default
9d8008d4465439b8a65f573985378932_default
2ef67ebea4d6d438d89b1b29b20163a4_default

Deleted Images:
deleted: sha256:7bf54eaf638f0e6f39ee4f131ccdb712943b26027ac8bf12e4116d8cb04ef780
deleted: sha256:9962810a3bd037598dd325dc501f5f7c7eccbc4eed7a563e2326a9476a9e67be
deleted: sha256:86802713e51740b4194a9461ec140f903cb9145541f073635fd7653dc774838d
deleted: sha256:15553b5efb08eefc2559f4be8e7ff335cfc5f753089fea798125463d7d3673b0
deleted: sha256:9656a2ff7c0ee43266f5c8bc559b626cbb55eff06c72d763fac70776102625cb
deleted: sha256:7dc77cb4b06d9309efb903f29edf48dd501c64f8752576c1a337b9e0e67635e6
deleted: sha256:709aad1d6077724c77e649c36f5b1cf195da9c1fac897d47fbe130ac841ca1ba
deleted: sha256:c4e00f7fc5fac03a089b2a35bb6c0a0731ce1facc489bbdce12bf97dea0b5300
deleted: sha256:82d0363588e67aa94840b4a379427642576523c0f52cf4150f297520866c4d98
deleted: sha256:1e38444538c5377a914505dabd70496baf35df3ea9a86fa4e7dab0d8fed7c03c
deleted: sha256:6bcfdb238ad436fafa3bee9c255739b9ee85d0fc04eb1fbfa0668d4d736f9d48
deleted: sha256:f5ce22d1501f61ae02f0f45c6d616a9eb52db7823813ed14d5cd55d1e4626eef
deleted: sha256:fed265adf6a1b1ca4fa9305e2302d18a3f9bbd939218991d5c49b75c288975f7
deleted: sha256:2cbb4bdde7c0d066c68b54095c9439c01ad4024f1b4bc8317432df2b0c7ebff2
deleted: sha256:911b96b0414f06865468540bb6053f6cde6f74e29de22e8acce9a349065241fb
deleted: sha256:999cc1e272b8e6b8db47d65a5b12d2aa1b97e2cb462d1a2273dbdd8301407397
deleted: sha256:ae32236da3caa41c1fa9ffc6b0cd4f215b89c2ab89699aab13ac6a989fd5356c
deleted: sha256:47a37d8fc71defff69b1418ac88c70812efd9e5f8e0e6bd4bd4b02c1a7cdce88

Total reclaimed space: 10.62GB
@thaJeztah
Copy link
Member

This is the expected behavior; docker system prune is meant to remove all unused objects. The --volumes flag was added as a "safety" options, because volumes are normally used to store persistent data, which may be important data (e.g. data for a database); in some cases such volumes may not be currently used, but still important.

If you want to only prune volumes, use docker volumes prune instead.

From the documentation; https://docs.docker.com/reference/cli/docker/system/prune/#description

Screenshot 2024-07-22 at 14 18 06

The command description could probably use some improving though, because it only prints the short description (Remove unused data); maybe we can make the commands use the long description (if available);

docker system prune --help

Usage:  docker system prune [OPTIONS]

Remove unused data

Options:
  -a, --all             Remove all unused images not just dangling ones
      --filter filter   Provide filter values (e.g. "label=<key>=<value>")
  -f, --force           Do not prompt for confirmation
      --volumes         Prune anonymous volumes

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants