J'ai un serveur OpenVPN en cours d'exécution exposant certaines adresses IP privées, j'aimerais que mes services d'essaimage Docker accèdent à ces adresses.
Idéalement, il n'y aurait pas de client OpenVPN "à l'intérieur" des conteneurs car les images devraient être déployées dans un environnement où un VPN ne sera pas nécessaire.
Ce que j'ai essayé jusqu'à présent
J'ai réussi à connecter un conteneur à mon VPN avec l'image dperson / openvpn-client .
J'ai lancé avec succès un autre conteneur en utilisant ce conteneur comme réseau en utilisant le --net=container:my-vpn-client
drapeau.
Maintenant, j'essaie de mettre en place un service docker qui accédera à mes adresses IP privées et ce que j'ai trouvé est:
- Je ne peux pas exécuter le client openVPN dans un service car il ne peut pas être fourni
cap-add: NET_ADMIN
. Docker discute de ce problème, mais ils sont toujours ouverts. - Je pensais que je pouvais faire fonctionner le conteneur client openVPN "à côté" du cluster swarm, mais je ne peux pas l'utiliser
network_mode: "container:my-vpn-client"
car il n'est pas pris en charge et est logique car je ne pouvais pas forcer la présence d'un conteneur arbitraire sur chaque nœud du essaim sans que ce soit un service lui-même. - J'ai essayé de créer un réseau attachable (pont / superposition) et de simplement y coller mon conteneur client OpenVPN et m'attendre comme par magie que d'autres membres de ce réseau passent par ce canal ... et j'ai été déçu.
Alors je suis là, une idée?
PS Si cela peut aider, c'est principalement pour configurer des tests automatisés qui exécuteront les services sur une seule machine docker en mode swarm, comme dans swarm init> stack deploy> run tests> swarm Leave. Donc s'il y a un "hack" pour ça ... ça peut m'intéresser;)
ccr
fichier comme si vous faisiez affaire avec un réseau local. Comme pour tout routage TCP / IP, «traceroute
est votre meilleur ami, teltcpdump
quel ou WireShark».