-
Notifications
You must be signed in to change notification settings - Fork 18.9k
Description
This really isn't an issue report, nor is it a question, but more a status report of my attempts at getting swarm mode of Docker 1.12 to work with windows container nodes.
Out of the box, any attempt to use swarm mode fails, as the daemon is attempting to create a unix socket for communication, which is not supported. I removed/modified the four pieces of code which attempted to create a listener on control.sock, instead replacing it with tcp listeners, and was able to start making progress on swarm mode.
First, attempting to create a new swarm failed, as the connection is rejected for not specifying a client certificate. After creating a swarm in Linux, I was able to join the swarm as a worker from Windows without issue. I was unable to have the Windows node join as a manager. I tried using the --manager option in the join command, which required me to accept the node. After accepting, the Linux manager saw the Windows node as a manager, but the Windows node did not see itself as a manager at all. I also tried to promote the worker to a manager, with the same results.
I then created some services. When creating a service with an image name that only existed for Linux, half of the replicas would run (the ones assigned to the Linux node), while the others would show as accepted, but not running. The same opposite behavior occurred when attempting to use an image that only existed for Windows. I have not yet attempted to try a Linux image which happens to have the same name as a Windows image. I believe that if I were to initialize a swarm in Linux and immediately set its status to drain, then added Windows worker nodes, this would create a Windows swarm cluster of sorts.
The next thing I wish to try is, instead of removing/modifying the unix socket listeners for tcp listeners, try to implement an npipe listener, similar to what was done for docker API access.