[btrfs] Docker and Subvolumes

After some troubleshooting and ranting in this topic (sorry for that):

I have decided to reinstall Garuda since I believe docker played a big role in why my system got the problems described in the topic linked above.
(ps: I can believe what ever I want, only time time and knowledge can prove me wrong!) :hear_no_evil: :see_no_evil: :speak_no_evil:

But I need docker for my work! What to do?
Simple… disable the btrfs support for docker.

For example I just build my app:

╭─eha@eha in repo: valheim-gameserver-app on  master [!] took 40ms
╰─λ sudo docker images
REPOSITORY                           TAG       IMAGE ID       CREATED              SIZE
dr.cloudron.dev/valheim.server.app   0.0.13    7e703242b8ed   About a minute ago   2.24GB
cloudron/base                        <none>    75ad8e394e18   3 weeks ago          2.18GB

and

╭─eha@eha in ~ took 9ms
╰─λ sudo btrfs subvolume list /
ID 256 gen 858 top level 5 path @
ID 257 gen 858 top level 5 path @home
ID 258 gen 294 top level 5 path @root
ID 259 gen 57 top level 5 path @srv
ID 260 gen 316 top level 5 path @cache
ID 261 gen 858 top level 5 path @log
ID 262 gen 247 top level 5 path @tmp
ID 282 gen 70 top level 5 path timeshift-btrfs/snapshots/2021-03-06_00-37-17/@

No crazy subvolumes like I had before.
How did I do this?

First read about docker storage driver to see which storage driver is the correct for you.
I’ve chosen overlay2 since it’s the default and recommended one.

Edit /usr/lib/systemd/system/docker.service
Add the --storage-driver overlay2

ExecStart=/usr/bin/dockerd --storage-driver overlay2 -H fd://

Or the better way:

4 Likes