réseau de partage de docker avec des conteneurs Windows et Linux

Aug 17 2020

Je souhaite connecter une fenêtre et un conteneur Linux au sein du même réseau.

Je crée d'abord un réseau (Docker pour Windows est défini sur "Conteneurs Windows"):

docker network create --driver nat mynet

Le réseau est créé et docker network lsrépertorie le nouveau réseau.

docker-compose.yml des fenêtres et du service linux contient:

version: "3"
services:
  ...
    networks:
      mynet: {}
networks:
  mynet:
    external: true

Avec docker-compose uple conteneur Windows démarre correctement, après "Passer aux conteneurs Linux" et en essayant de démarrer le conteneur Linux, l'erreur suivante s'affiche:

ERREUR: Réseau mynet déclaré comme externe, mais introuvable. Veuillez créer le réseau manuellement en utilisant docker network create mynetet réessayer.

Aussi docker network lsne répertorie pas le réseau plus.

Quelle serait la bonne façon de partager un réseau entre Windows et Linux?

Réponses

1 CharlesDesbiens Aug 17 2020 at 08:18

Activer l'option «Basculer vers les conteneurs Linux» amène votre Docker à basculer entre les contextes entre une VM Linux sur laquelle Docker s'exécute et un système d'exploitation Windows.

Lorsque vous faites cela, vous passez en fait à un ensemble différent de ressources docker qui ne se connaissent pas. Ils sont sur des systèmes d'exploitation distincts. Malheureusement, vous ne pouvez pas faire ce que vous essayez de faire avec compose, car compose fonctionnera toujours sur un seul démon et un seul démon fonctionnera sur un seul système d'exploitation. Mais vous pouvez configurer votre propre machine virtuelle Linux, installer docker dessus et créer un essaim de 2 nœuds composé de votre machine Windows et de votre machine virtuelle Linux. De cette façon, vous pouvez exécuter vos conteneurs Linux sur l'un, vos conteneurs Windows sur l'autre, et les connecter via un réseau.