The first thing you need to do is create a 'base' container where you choose your settings as you please. Because I am most comfortable with Ubuntu, I will be modifying an ubuntu-16.04-standard_16.04-1_amd64 container.
Whatever choices you make for hardware will not affect the template, so just finish making the container.
Enter the container and customize it to your liking. If you haven't seen it already, My First 5 Minutes on a Server is a great read
sudo pct enter < id >
Finish off your base container by installing upgrades then cleaning all specific information
sudo -S apt update sudo -S apt upgrade # Install available upgrades
sudo -S apt clean # Clean temp data sudo -S apt autoclean sudo -S apt autoremove # Remove unused packages
sudo -S rm /etc/resolv.conf # Strip DNS settings sudo -S rm /etc/hostname # Strip hostname
exit # Exit user
exit # Exit container
Return to the Proxmox WebUI and remove the network interfaces from the container
Backup to Template
pct stop < id > # Stop container
Again in the WebUI, create a backup of your container
Back in the terminal, find your most recent backup
The backup archive will be called 'vzdump-lxc-< id >-< date >.tar.gz' in the '/var/lib/vz/dump/' directory
Rename and move this archive
mv vzdump-lxc-< id >-< date >.tar.gz /var/lib/vz/template/cache/ubuntu-16.04-custom_16.04-1_amd64.tar.gz
When you go to make a new container, verify that your template is displayed as an option.