Merge pull request #9516 from usha-mandya/mac-disk-patch

update mac disk utilization
This commit is contained in:
Usha Mandya 2019-09-27 17:54:29 +01:00 committed by GitHub
commit 7720674fc2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 48 additions and 43 deletions

View File

@ -4,91 +4,96 @@ keywords: mac, disk
title: Disk utilization in Docker for Mac
---
Docker for Mac stores Linux containers and images in a single, large "disk image" file
in the Mac filesystem. This is different from Docker on Linux, which usually stores containers
and images in the `/var/lib/docker` directory.
Docker Desktop stores Linux containers and images in a single, large "disk image" file in the Mac filesystem. This is different from Docker on Linux, which usually stores containers and images in the `/var/lib/docker` directory.
## Where is the "disk image" file?
## Where is the disk image file?
To locate the "disk image" file, first select the whale menu icon and then select
**Preferences...**. When the **Preferences...** window is displayed, select **Disk** and then **Reveal in Finder**:
To locate the disk image file, select the Docker icon and then
**Preferences** > **Resources** > **Advanced**.
![Disk preferences](images/settings-disk.png)
![Disk preferences](images/menu/prefs-advanced.png)
The **Preferences...** window shows how much actual disk space the "disk image" file is consuming.
In this example, the "disk image" file is consuming 2.4 GB out of a maximum of 64 GB.
Note that other tools might display space usage of the file in terms of the maximum file size, not the actual file size.
The **Advanced** tab displays the location of the disk image. It also displays the maximum size of the disk image and the actual space the disk image is consuming. Note that other tools might display space usage of the file in terms of the maximum file size, and not the actual file size.
## If the file is too big
If the file is too big, you can
If the disk image file is too big, you can:
- move it to a bigger drive,
- delete unnecessary containers and images, or
- reduce the maximum allowable size of the file.
### Move the file to a bigger drive
To move the file, open the **Preferences...** menu, select **Disk** and then select
on **Move disk image**. Do not move the file directly in the finder or Docker for Mac will
lose track of it.
To move the disk image file to a different location:
1. Select **Preferences** > **Resources** > **Advanced**.
2. In the **Disk image location** section, click **Browse** and choose a new location for the disk image.
3. Click **Apply & Restart** for the changes to take effect.
Do not move the file directly in Finder as this can cause Docker Desktop to lose track of the file.
### Delete unnecessary containers and images
To check whether you have too many unnecessary containers and images:
If your client and daemon API are version 1.25 or later (use the docker version command on the client to check your client and daemon API versions.), you can display detailed space usage information with:
Check whether you have any unnecessary containers and images. If your client and daemon API are running version 1.25 or later (use the `docker version` command on the client to check your client and daemon API versions), you can see the detailed space usage information by running:
```
docker system df -v
```
Alternatively, you can list images with:
Alternatively, to list images, run:
```bash
$ docker image ls
```
and then list containers with:
and then, to list containers, run:
```bash
$ docker container ls -a
```
If there are lots of unneeded objects, try the command
If there are lots of redundant objects, run the command:
```bash
$ docker system prune
```
This removes all stopped containers, unused networks, dangling images, and build cache.
Note that it might take a few minutes before space becomes free on the host, depending
on what format the "disk image" file is in:
- If the file is named `Docker.raw`: space on the host should be reclaimed within a few
seconds.
- If the file is named `Docker.qcow2`: space will be freed by a background process after
a few minutes.
This command removes all stopped containers, unused networks, dangling images, and build cache.
Note that space is only freed when images are deleted. Space is not freed automatically
when files are deleted inside running containers. To trigger a space reclamation at any
point, use the command:
It might take a few minutes to reclaim space on the host depending on the format of the disk image file:
- If the file is named `Docker.raw`: space on the host should be reclaimed within a few seconds.
- If the file is named `Docker.qcow2`: space will be freed by a background process after a few minutes.
Space is only freed when images are deleted. Space is not freed automatically when files are deleted inside running containers. To trigger a space reclamation at any point, run the command:
```
$ docker run --privileged --pid=host justincormack/nsenter1 /sbin/fstrim /var/lib/docker
$ docker run --privileged --pid=host docker/desktop-reclaim-space
```
Note that many tools will report the maximum file size, not the actual file size.
To query the actual size of the file on the host from a terminal, use:
Note that many tools report the maximum file size, not the actual file size.
To query the actual size of the file on the host from a terminal, run:
```bash
$ cd ~/Library/Containers/com.docker.docker/Data
$ cd vms/0 # or com.docker.driver.amd64-linux
$ cd vms/0/data
$ ls -klsh Docker.raw
2333548 -rw-r--r--@ 1 akim staff 64G Dec 13 17:42 Docker.raw
2333548 -rw-r--r--@ 1 username staff 64G Dec 13 17:42 Docker.raw
```
In this example, the actual size of the disk is `2333548` KB, whereas the maximum size
of the disk is `64` GB.
In this example, the actual size of the disk is `2333548` KB, whereas the maximum size of the disk is `64` GB.
### Reduce the maximum size of the file
To reduce the maximum size of the file, select the whale menu icon and then select
**Preferences...**. When the **Preferences...** window is displayed, select **Disk**.
The **Disk** window contains a slider that allows the maximum disk size to be set.
**Warning**: If the maximum size is reduced, the current file will be deleted and, therefore, all
containers and images will be lost.
To reduce the maximum size of the disk image file:
1. Select the Docker icon and then select **Preferences** > **Resources** > **Advanced**.
2. The **Disk image size** section contains a slider that allows you to change the maximum size of the disk image. Adjust the slider to set a lower limit.
3. Click **Apply & Restart**.
When you reduce the maximum size, the current disk image file is deleted, and therefore, all containers and images will be lost.