| # system df | |
| <!---MARKER_GEN_START--> | |
| Show docker disk usage | |
| ### Options | |
| | Name | Type | Default | Description | | |
| |:----------------------|:---------|:--------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | |
| | [`--format`](#format) | `string` | | Format output using a custom template:<br>'table': Print output in table format with column headers (default)<br>'table TEMPLATE': Print output in table format using the given Go template<br>'json': Print in JSON format<br>'TEMPLATE': Print output using the given Go template.<br>Refer to https://docs.docker.com/go/formatting/ for more information about formatting output with templates | | |
| | `-v`, `--verbose` | `bool` | | Show detailed information on space usage | | |
| <!---MARKER_GEN_END--> | |
| ## Description | |
| The `docker system df` command displays information regarding the | |
| amount of disk space used by the Docker daemon. | |
| ## Examples | |
| By default the command displays a summary of the data used: | |
| ```console | |
| $ docker system df | |
| TYPE TOTAL ACTIVE SIZE RECLAIMABLE | |
| Images 5 2 16.43 MB 11.63 MB (70%) | |
| Containers 2 0 212 B 212 B (100%) | |
| Local Volumes 2 1 36 B 0 B (0%) | |
| ``` | |
| Use the `-v, --verbose` flag to get more detailed information: | |
| ```console | |
| $ docker system df -v | |
| Images space usage: | |
| REPOSITORY TAG IMAGE ID CREATED SIZE SHARED SIZE UNIQUE SIZE CONTAINERS | |
| my-curl latest b2789dd875bf 6 minutes ago 11 MB 11 MB 5 B 0 | |
| my-jq latest ae67841be6d0 6 minutes ago 9.623 MB 8.991 MB 632.1 kB 0 | |
| <none> <none> a0971c4015c1 6 minutes ago 11 MB 11 MB 0 B 0 | |
| alpine latest 4e38e38c8ce0 9 weeks ago 4.799 MB 0 B 4.799 MB 1 | |
| alpine 3.3 47cf20d8c26c 9 weeks ago 4.797 MB 4.797 MB 0 B 1 | |
| Containers space usage: | |
| CONTAINER ID IMAGE COMMAND LOCAL VOLUMES SIZE CREATED STATUS NAMES | |
| 4a7f7eebae0f alpine:latest "sh" 1 0 B 16 minutes ago Exited (0) 5 minutes ago hopeful_yalow | |
| f98f9c2aa1ea alpine:3.3 "sh" 1 212 B 16 minutes ago Exited (0) 48 seconds ago anon-vol | |
| Local Volumes space usage: | |
| NAME LINKS SIZE | |
| 07c7bdf3e34ab76d921894c2b834f073721fccfbbcba792aa7648e3a7a664c2e 2 36 B | |
| my-named-vol 0 0 B | |
| ``` | |
| * `SHARED SIZE` is the amount of space that an image shares with another one (i.e. their common data) | |
| * `UNIQUE SIZE` is the amount of space that's only used by a given image | |
| * `SIZE` is the virtual size of the image, it's the sum of `SHARED SIZE` and `UNIQUE SIZE` | |
| > [!NOTE] | |
| > Network information isn't shown, because it doesn't consume disk space. | |
| ## Performance | |
| Running the `system df` command can be resource-intensive. It traverses the | |
| filesystem of every image, container, and volume in the system. You should be | |
| careful running this command in systems with lots of images, containers, or | |
| volumes or in systems where some images, containers, or volumes have large | |
| filesystems with many files. You should also be careful not to run this command | |
| in systems where performance is critical. | |
| ### <a name="format"></a> Format the output (--format) | |
| The formatting option (`--format`) pretty prints the disk usage output | |
| using a Go template. | |
| Valid placeholders for the Go template are listed below: | |
| | Placeholder | Description | | |
| |----------------|--------------------------------------------| | |
| | `.Type` | `Images`, `Containers` and `Local Volumes` | | |
| | `.TotalCount` | Total number of items | | |
| | `.Active` | Number of active items | | |
| | `.Size` | Available size | | |
| | `.Reclaimable` | Reclaimable size | | |
| When using the `--format` option, the `system df` command outputs | |
| the data exactly as the template declares or, when using the | |
| `table` directive, includes column headers as well. | |
| The following example uses a template without headers and outputs the | |
| `Type` and `TotalCount` entries separated by a colon (`:`): | |
| ```console | |
| $ docker system df --format "{{.Type}}: {{.TotalCount}}" | |
| Images: 2 | |
| Containers: 4 | |
| Local Volumes: 1 | |
| ``` | |
| To list the disk usage with size and reclaimable size in a table format you | |
| can use: | |
| ```console | |
| $ docker system df --format "table {{.Type}}\t{{.Size}}\t{{.Reclaimable}}" | |
| TYPE SIZE RECLAIMABLE | |
| Images 2.547 GB 2.342 GB (91%) | |
| Containers 0 B 0 B | |
| Local Volumes 150.3 MB 150.3 MB (100%) | |
| <Paste> | |
| ``` | |
| To list all information in JSON format, use the `json` directive: | |
| ```console | |
| $ docker system df --format json | |
| {"Active":"2","Reclaimable":"2.498GB (94%)","Size":"2.631GB","TotalCount":"6","Type":"Images"} | |
| {"Active":"1","Reclaimable":"1.114kB (49%)","Size":"2.23kB","TotalCount":"7","Type":"Containers"} | |
| {"Active":"0","Reclaimable":"256.5MB (100%)","Size":"256.5MB","TotalCount":"1","Type":"Local Volumes"} | |
| {"Active":"0","Reclaimable":"158B","Size":"158B","TotalCount":"17","Type":"Build Cache"} | |
| ``` | |
| The format option has no effect when the `--verbose` option is used. | |
| ## Related commands | |
| * [system prune](system_prune.md) | |
| * [container prune](container_prune.md) | |
| * [volume prune](volume_prune.md) | |
| * [image prune](image_prune.md) | |
| * [network prune](network_prune.md) |