How to have /var/lib/docker on a 100G drive?

The -pool volumes are not disks, they’re virtual loopback devices backed by files in /var/lib/docker (/devicemapper?). Anyway, sdetweil already gave you all you needed:

systemctl stop docker
mv /var/lib/docker $xvdf_mountpoint
ln --symbolic $xvdf_mountpoint /var/lib/docker
systemctl start docker

(Note that it isn’t mounted anywhere yet per your lsblk output.)

I have never tried it, but the Docker engine should follow the link fine.

That being said, an even easier way would be to mount the xvdf device on /var/lib/docker directly.

systemctl stop docker
mount /dev/xvdf1 /var/lib/docker
systemctl start docker

(Also note that your only partition on xvdf is 30G, you might want to increase that. In fact, you don’t have to partition a device if you’re using it entirely for one thing – e.g. one filesystem.)

Again I have never done this though I’m quite confident it would work transparently. I do regularly mount /var/lib/docker/volumes on arbitrary devices (for application data).