我的 windows 容器可以在 swarm 中的 linux 工作节点上工作吗?

Will my windows container work on linux worker node in swarm?

感谢专家建议。我们在 RH Linux 平台上有一个 Docker EE 设置。

鉴于我们已将 Docker EE 设置为:

当我构建 windows 容器到 运行 构建在 .NET 4.6.2 上的 .NET 控制台服务时。这个容器是如何在 swarm 中分配的?

问题: 这怎么能入群呢?

我的容器是否能够 运行 在工作节点 运行 宁 Linux 主机 OS 上? docker swarm 如何管理节点的故障转移?副本只会分布在 windows 个工作节点上吗?我们这样设置有意义吗?

我读到 windows 容器只能在 Windows 主机上 运行 但 Linux 容器可以 运行 同时 Linux 和Windows 主机节点。本周将进行测试,但很高兴听到您的经验。 //TIA

您将 windows 容器主机加入 swarm 的方式与加入 UNIX 主机 (docker swarm join) 的方式相同。您为这些节点分配标签以标识这些节点是 windows 个节点,并且在部署服务时为 windows 个容器指定约束。 它将像您对 UNIX 服务所期望的那样工作。目前的限制是你只能在 global 模式下部署,也就是说你必须在每个节点上有 windows 个节点 运行 因为群网格还没有完全支持。

https://docs.microsoft.com/en-us/virtualization/windowscontainers/manage-containers/swarm-mode

您不再需要为每个节点创建 OS 标签。 Docker Swarm 自动识别工作节点 OS。只需在撰写文件中为每个服务指定所需的 OS:

version: '3'  
services:  
    service_1:  
        restart: on-failure  
        image: 'service_1'  
        deploy:  
            placement:  
                constraints:  
                    - node.platform.os == windows  
    junittestsuite:  
        restart: on-failure  
        image: 'junit_test_suite:1.0'  
        command: ant test ...  
        deploy:  
            placement:  
                constraints:  
                    - node.platform.os == linux