réseau de partage de docker avec des conteneurs Windows et Linux
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 ls
ré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 up
le 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 mynet
et réessayer.
Aussi docker network ls
ne répertorie pas le réseau plus.
Quelle serait la bonne façon de partager un réseau entre Windows et Linux?
Réponses
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.