Docker Community Forums

Share and learn in the Docker community.

Connect Windows and Linux containers on Windows 10 Professional edition

(Timothy Harris) #1

I have a use case where I need to run both Windows and Linux containers on a windows 10 box and have them talk to each other.

I tried the following from a windows Bash shell without success. The first service (running a linux container) is started and the container comes up successfully. The second service (Windows container) gets stuck in starting and never comes up :frowning:

What I did was:

Switch to windows containers
docker swarm init --advertise-addr= --listen-addr

Switch to Linux containers
docker swarm join --token SWMTKN-1-65rdxopimmk1orkssv8u0yladax3ggs6dc0ep5uurr45z0g1tk-aivhg7w3ywtrxk7zxfwdri9g2

Switch to windows containers and get node names

$ docker node ls
ID                            HOSTNAME                STATUS              AVAILABILITY        MANAGER STATUS
k9kx8skklv3djvmax5b4x9mmw *   W10-LT-TD-NEW           Ready               Active              Leader
ab6nxsj545ikylifptnd72jke     linuxkit-00155d013b12   Ready               Active

Add labels to the nodes

docker node update --label-add os=windows W10-LT-TD-NEW
docker node update --label-add os=linux linuxkit-00155d013b12

Create an overlay network
docker network create --driver=overlay mylocal

Create the services

docker service create --name bamboo --endpoint-mode dnsrr --network mylocal --publish mode=host,target=8085 --publish mode=host,target=54663 --constraint 'node.labels.os==linux' nemlig/bamboo:0.0.1

docker service create --name agent --endpoint-mode dnsrr --network mylocal --constraint 'node.labels.os==windows' nemlig/base-bamboo-agent:0.0.1

I can successfully start the windows container with a docker run. Just not when running it as a service. Pretty sure this is a network issue.

Not sure if my approach was the right one or not or if it is even possible to run both types of containers on windows 10 professional and have them communicate with each other.

Anyone else try something like this?