I have been testing docker. Due to strict firewall policy that blocks all ports except the ones necessary, I bind my docker clients to local ports and use ssh tunnels to access them remotely for the likes of swarm and private insecure registry. All clients have the public key of my development machine that is running the insecure registry and the swarm. Once the ssh tunnels are established to swarm and registry ports on all clients, I can use them "normally".
What are the pros and cons of this approach over setting up the tls and opening ports for swarm and registry? Is this approach secure for production environment?