Skip to main content

Docker Success Center

The Docker enterprise customer portal.

Docker, Inc.

'--mode global' can cause platform mismatch for replica

Issue

Docker 17.06 EE supports mixed platform worker nodes (for example, Linux and Windows worker nodes in the same cluster).

Starting in Docker 17.06 EE, the Swarm manager automatically schedules containers to worker nodes with the corresponding platform.  For example, a service that runs Windows containers will schedule replicas only to Windows worker nodes.  However, when --mode global is used, task will be assigned to all nodes regardless of the platform type. This might be the desired behavior for all containers.

Resolution

Task can be assigned a specific platform by adding a constraint like this:

docker service create --name windowsonly `
--mode global --constraint 'node.platform.os == windows' `
microsoft/nanoserver