Certaines applications dont nous disposons dépendent de la connexion à notre VPN pour se connecter à différentes solutions (pas encore dockées).
Quelle est la "manière de docker" de faire cela? Dans mon esprit, l'ajout d'OpenVPN à une image existante est contraire à la philosophie des dockers.
De mon point de vue, je pense que la création d'un conteneur client VPN Docker est la plus logique. Mais à quoi cela ressemblerait-il? J'utilise docker compose, donc il y aurait certainement un
myContainer
- links: myVPNClient
mais devrais-je alors transmettre des ports? Ou ce qui devrait se produire pour permettre à myContainer
de se connecter via le conteneur openVPN.
Une autre option serait de demander Jess Frazelle (jfrazelle
) , qui a l'habitude de tout conteneuriser .
Effectivement, elle a un jfrazelle/dockerfiles/openvpn
projet qui l'expose directement à l'hôte:
vpn:
build: .
volumes:
- .:/etc/openvpn
net: Host
devices:
- /dev/net/tun:/dev/net/tun
cap_add:
- NET_ADMIN
Il utilise une interface TUN (pas TAP) .
La solution la plus simple serait probablement de configurer tous les conteneurs qui ont besoin du vpn pour utiliser l'espace de noms réseau du conteneur vpn. Autrement dit, votre docker-compose.yml inclurait quelque chose comme:
vpn:
image: myvpn_image
app1:
image: app1_image
net: container:vpn
Avec cette configuration, le conteneur vpn
et le app1
conteneur voir le même environnement réseau.