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).