Docker on alternative storage drivers?

Just had the pleasure of installing my first UCS on dedicated hardware to (hopefully) serve me well the coming years.
Unfortunately, I was stubborn and installed UCS on a btrfs root partition despite the installer’s warning. At that point I was thinking I was going to add a data partition later anyway with a different filesystem to store all VM’s and docker images.

After some research I learned about the ‘overlay’ storage driver UCS uses by default (why has UCS not switched to ‘overlay2’ by the way, as recommended by Docker?) and it’s incompatibility with btrfs.

So I figured if I could just change the ‘overlay’ storage driver to ‘btrfs’ (as described here: https://docs.docker.com/storage/storagedriver/btrfs-driver/), everything would be fine.

Little did I know UCS calls the docker binary with flags, so the proposed workaround I found in the link above does not work:

Aug 28 21:56:59 simba dockerd[12883]: unable to configure the Docker daemon with file /etc/docker/daemon.json: the following directives are specified both as a flag and in the configuration file: storage-driver: (from flag: overlay, from file: btrfs)

I spent the following hours trying to find out where UCS stores the docker startup settings so I can edit the flags, and after much digging I discovered the amazing UCR where I was able to change ‘overlay’ to ‘btrfs’.
However, when trying to install and app (i.e. Nextcloud) from the App Center, it fails:

File "/usr/lib/python2.7/dist-packages/univention/appcenter/docker.py", line 220, in root_dir
    self._root_dir = self.inspect_container()['GraphDriver']['Data']['MergedDir']
TypeError: 'NoneType' object has no attribute '__getitem__'

So my obvious question are

  1. Is the error above in fact related to Docker running on the btrfs driver?
  2. If so, are there any Docker storage drivers which will work with UCS, besides the (according to Docker, almost deprecated) ‘overlay’?
  3. Are there any more problems I can expect by running on btrfs, or should everything work fine if I mount storage with a supported filesystem to /var/lib/docker (as per the Docker docs)?

Thanks in advance!

Mastodon