This is how to install portainer on the swarm you created using this gist note this should work on non-swarm installs too!
Download the portain stack yaml that will do this for you
curl -L https://downloads.portainer.io/ce2-17/portainer-agent-stack.yml -o portainer-agent-stack.yml
now run it
sudo docker stack deploy -c portainer-agent-stack.yml portainer
this will create a single portainer container that runs on the management node and deploy the agent to all worker nodes, once complete you can now access portainer at http://docker-host-ip:9000 and define your admin users etc
You now have a fully function docker swarm with portainer and can deploy containers, stacks or templates.
How to use portainer is beyond the scope of this gist
This is the portainer install doc at time of writing for reference but the instructions above will work just fine
I don't know anything about microceph - i just used what proxmox gave me so can't express an opinion on that.
For gluster you might want to just mount the gluster volume rather than use the gluster volume plugin i used - it works great until i reboot the switch the promox host nodes are connected to (remeber my swarm in VMs on top of proxmox) and then the gluster plugin fails and so any container relying on it fails.
its simple to SSH in and reenable the plugin
docker plugin enable <id>
(get the id fromdocker plugin ls
but i find i have to do this on all 3 nodes in sequence and if one fails with mysterious error do the others and come back to it.This is why i plan to move to either mounted ceph across network using fuse, or dabble with one of the ceph volume plugins, but they are all so old.... which is the FUD that has made me do nothing to resolve this.