Hi, I got the same error you did.
INFO[0000] [graphdriver] using prior storage driver "btrfs"
INFO[0000] Listening for HTTP on unix (/var/run/docker.sock)
FATA[0000] Error starting daemon: Insertion failed because database is full: database or disk is full
If you run
df -h
you should se a list of directories and space available. For my case, the docker image was 100% full.
/dev/loop0 15G 14G 0 100% /var/lib/docker
I was pretty perplexed but after a little googleing there appears to be a bug with docker not properly destroying btrfs subvolumes after a container is destroyed https://github.com/docker/docker/issues/9939. I did a little poking around with this:
ls -a /var/lib/docker/btrfs/subvolumes
I saw that it was filled with a bunch of stuff so I did this to see exactly how much is in there:
du -sbh /var/lib/docker/btrfs/subvolumes
The command took too long to run, I wasn't sure what was going on with it. I took off the s option so I could see what the command was doing, there appears to be hundreds of files in there. Docker apparently hasn't fixed it yet but somebody wrote a script to safely clean out that directory https://github.com/docker/docker/blob/620339f166984540f15aadef2348646eee9a5b42/contrib/nuke-graph-directory.sh.
I'm going to try running that script now, I'll let you know how it works out.