Static IP of my pool with Traefik (🇫🇷post)

Hello guys,

I only discover now this excellent reverse proxy. Everything works perfectly but I would like to understand how I can have statics ip of my dockers? I will try to be as clear as possible:
I had some dockers with statics ip 192.168.1.xx with macvlan driver. Now with traefik it's impossible. I do not like the idea that all my dockers have the same ip address...

What do you think? How did you proceed?

Thank you for your time! :slight_smile:

Hi @Stipe, can you elaborate please, not sure to fully get the picture.

When you say I had some dockers with statics ip 192.168.1.xx with macvlan driver., do you mean "docker containers with static IPs each inside a macvlan docker network" ? Or do you mean "docker engines" ?

Also, can you explain what do you mean by Now with traefik it's impossible? Did you try something and saw errors (share your configuration then)?

Salut Damien,

Merci pour ton retour :slight_smile: je me permets de te répondre en français car ce sera plus simple pour moi de m’exprimer :

J’ai un réseau local en 192.168.1.0/24

Je voulais dans une idée de départ attribuer une ip fixe à chacun de mes containers avec ce réseau, exemple Plex 192.168.1.19 de sorte à éviter tout conflit et pour y accéder en local si nécessaire. J’avais donc créé un network sur docker avec un pool d’adresses de ce réseau avec le driver macvlan mais je ne sais pas comment proceder maintenant avec Traefik car j’ai un network proxy_traefik avec le driver bridge qui attribue automatiquement des adresses ip en 172.20.x.x...

J’espère avoir été clair :slight_smile:

Merci par avance

Stéphane

Salut Stéphane,

je ne suis pas sûr de tout bien comprendre. Le réseau local en 192.168.1.0/24, c'est un réseau physique sur lequel se trouve la machine contenant le Docker Engine? C'est un réseau virtuel dans cette machine?

Si jamais tu as un petit diagramme (https://www.draw.io/ ou http://asciiflow.com/) ce sera peut ĂŞtre plus clair :wink:

Le but de Traefik (avec Docker Engine), c'est de ne fournir qu'un seul point d'entrée (donc une seule IP avec éventuellement différent ports) pour accéder à tous les containers du container engine. Car le modèle réseau de Docker (https://docs.docker.com/network/) c'est d'avoir des réseau virtuels privés dont le DHCP (IP dynamique changeantes) et le DNS (nom des containers associés à leur IPs) sont automatiquement gérés au sein de ces réseaux privés.

Je suis donc confus quant à l'usage d'une IP par container: l'intérêt de Docker est fort limité, sauf si tu as un cas d'usage très spécifique à nous partager évidemment.

Pour info, tu peux configurer des IPs statiques pour tes containers Docker avec le flag --ip= (il y a une directive Ă©quivalente dans docker-compose): https://docs.docker.com/engine/reference/run/#network-settings .
Mais tes containers seront quand même dans un réseau privé: https://docs.docker.com/network/network-tutorial-macvlan/.
Dans ce cas, Traefik fonctionnera très bien comme attendu: il se contente en effet de "lire" les IPs attribuées au containers depuis le Docker Engine.

Damien,

Voici un schéma que je viens de faire "à l'arrache":

Pour tout te dire je viens du monde de Freenas: à chaque nouveau "jail iocage" (équivalent du container chez Docker) on configurait une adresse du plan d'adressage appartenant au routeur physique (ma box) sur lequel était connecté le NAS pour chaque plugin. Je trouvais ça fort pratique. Déjà car on pouvait facilement taper en local dessus en cas de souci et on évitait aussi les conflits (je pense notamment à Plex et Transmission avec Openvpn sur une machine de la même IP, j'ai pas mal été embêté la semaine dernière quand j'ai découvert Docker et c'est pour ça que j'avais créé un réseau lié au driver macvlan pour isoler chaque service et je n'avais plus de problème de conflit).

Ceci dit tes explications m'ont permis de m'éclaircir sur le fonctionnement de Docker et cela peut-être très pratique également: un adressage d'un réseau virtuel pour isoler les flux du reste. Mais comment je peux alors procéder pour accéder à ces machines en local si besoin? si Traefik rencontre un problème? vais-je éviter les conflits comme j'ai cité plus haut? Désolé pour cette ignorance :slight_smile:
Merci par avance pour ton aide.
Stéphane

Cher Damien,

J'ai finalement réussi, c'était d'une telle simplicité que j'en ai honte... j'ai ajouté une seconde patte tout simplement à mon container :slight_smile: merci pour tout

1 Like

Mais de rien :slight_smile: amuse toi bien