• Docker
  • Docker sur Windows Server 2019

Bonjour,
J'ai un problème qui me casse la tête avec Docker sur Windows.
Windows Sever 2019 est hébergé sur une VM ESXi accessible avec une IP publique.
Docker démarre des conteneurs avec des ports remappés. J'ai besoin d'utiliser les conteneurs via leur port TCP qu'en local sur le serveur (en gros un reverse proxy qui balance les demandes sur le conteneur souhaité). Or les ports mappés sont aussi accessibles via l'IP publique de WS2019, ce que je ne veux pas.
J'ai essayé d'ajouter une règle pour les bloquer en vain car Docker crée lui même une règle dans le pare feu pour chaque conteneur afin de faire le mappage des ports.
J'ajouterais que je ne peux pas utiliser Docker sous Linux pour ce projet, mes conteneurs sont obligatoirement basés sur des images Windows.

Quelqu'un aurait il une solution ?

Merci

Salut, quand tu lances ton container ne publies pas le ou les ports. Par exemple

docker run -d \
--restart=always \
--name scrutiny \
-v /run/udev:/run/udev:ro \
--cap-add SYS_RAWIO \
--device=/dev/sda \
--device=/dev/sdb \
--label=com.centurylinklabs.watchtower.enable=true \
analogj/scrutiny

Au lieu de

docker run -d \
--restart=always \
--name scrutiny \
-p 1157:8080 \
-v /run/udev:/run/udev:ro \
--cap-add SYS_RAWIO \
--device=/dev/sda \
--device=/dev/sdb \
--label=com.centurylinklabs.watchtower.enable=true \
analogj/scrutiny

Salut,
Je ne vois pas en quoi ça résout mon problème.
Pour chaque conteneur, j'ai besoin d'accéder à 1 port TCP lié à 1 service hébergé dans le conteneur.
Pour rappel mon environnement est intégralement sous Windows Server (pas de host ou conteneur sous Linux).

Ce qui serait top, c'est de pouvoir spécifier l'IP sur le port mappé comme ceci 😀
docker run -dit --restart=unless-stopped -p 127.0.0.1:10001:8080 -v "C:\Applications\data":"C:\data" mlgd/myimage:windows

mais sous Windows, impossible ou je m'y prends comme un manche 😄

Je ne sais pas utiliser Docker sur Windows. Sur Linux si tu ne publies pas de port ils sont alors accessibles en interne mais pas en externe. J'ai supposé que ce serait pareil sur ton OS.

J'ai trouvé une solution.
Au lieu de lancer Traefik directement sur l'OS hôte (WS2019), je l'ai démarré dans un container puis j'ai démarré mes conteneurs de service en utilisant le conteneur de Traefik en tant que network :
--net=container:traefik

Répondre…