web-dev-qa-db-fra.com

Meilleure pratique pour se connecter à un VPN via Docker

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.

15
jQwierdy

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) .

16
VonC

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.

5
larsks