What started as a project to run "some crypto applications" grew into something much bigger, but also more useful. I learned a tremendous amount about virtual machines, lxc containers and Proxmox. And although I'm just scratching the surface and I don't actually understand it, I know how to do some things. I'll write them down here, partly for myself, but also for you in hopes it will save one of us a lot of time and frustration.
Currently it doesn't seem possible to get Docker to work on ZFS. Well you can with a lot of manual work, but my experience was really poor. I wanted to run docker inside an LXC container, which might sound weird, but alas, I wanted it. However, running docker in LXC with a ZFS mount was really slow. So I changed the setup a bit.
In Proxmox GUI go to "Datacenter" -> "Storage" and click "Add" and choose "Directory"
Create the directory:
Go to "nfs-pool1" -> "CT Templates" and click "Templates". Download Ubuntu 20.
Click "Create CT":
Select a container template:
Enter amount of cores:
Enter amount of memory:
Confirm next two screens.
Click on the container and go to "Resources". Click "Add" -> "Mount point"
Start the container and open a shellsession.
pct enter <id>
Add supporting package
apt updateapt upgradeapt install apt-transport-https ca-certificates curl gnupg lsb-release
Add Docker’s official GPG key:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
Add Apt repository:
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null
apt updateapt install docker-ce docker-ce-cli containerd.io docker-compose
docker run hello-world