bsky
bsky

Reputation: 20222

Check that Docker container has enough disk space

My hard disk is getting full and I'm suspecting that my Docker container may not have enough disk space.

How can I check that the system allocated enough free disk space for Docker?

My OS is OSX.

Upvotes: 1

Views: 5523

Answers (1)

Matt
Matt

Reputation: 74630

Docker for Mac's data is all stored in a VM which uses a thin provisioned qcow2 disk image. This image will grow with usage, but never automatically shrink. (which may be fixed in 1.13)

The image file is stored in your home directories Library area:

mac$ cd ~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux
mac$ ls -l Docker.qcow2 
rw-r--r--  1 user  staff  46671265792 31 Jan 22:24 Docker.qcow2

Inside the VM

Attach to the VM's tty with screen (brew install screen if you don't have it)

$ screen ~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/tty

If you get a login prompt, user is root with no password. Otherwise just press enter. Then you can run the df commands on the Linux VM.

/ # df -h /var/lib/docker
Filesystem                Size      Used Available Use% Mounted on
/dev/vda2                59.0G     14.9G     41.1G  27% /var

Note that this matches the df output inside a container (when using aufs or overlay)

mac$ docker run debian df -h
Filesystem      Size  Used Avail Use% Mounted on
overlay          60G   15G   42G  27% /
tmpfs           1.5G     0  1.5G   0% /dev
tmpfs           1.5G     0  1.5G   0% /sys/fs/cgroup
/dev/vda2        60G   15G   42G  27% /etc/hosts
shm              64M     0   64M   0% /dev/shm

Also note that while the VM is only using 14.9G of the 60G, the file size is 43G.

mac$ du -h Docker.qcow2 
43G Docker.qcow2

The easiest way to fix the size is to backup any volume data, "Reset" docker from the Preferences menu and start again. It appears 1.13 has resolved the issue and will run a compaction on shutdown.

screen notes

Exit the screen session with ctrl-a then d

The Docker VM's tty get's messed up after I exit screen and I have to restart Docker to get a functional terminal back for a new session.

Upvotes: 4

Related Questions