@momurda I used this documentation from Docker: https://docs.docker.com/engine/swarm/swarm-tutorial/
I also used this documentation from Traefik which is the load balancer I used in my setup:
https://docs.traefik.io/user-guide/swarm-mode/
I ended up making a build machine that the team can share to create images. Harbor is the registry I ended up using to store the images.
I don't think any of the docker parts were too difficult. The harder part is getting the apps into functional images and even that is not too bad once you begin to understand how they work.