【问题标题】:Will my windows container work on linux worker node in swarm?我的 Windows 容器可以在 swarm 中的 linux 工作节点上工作吗?
【发布时间】:2018-09-03 20:20:09
【问题描述】:

感谢专家的建议。我们在 RH Linux 平台上安装了 Docker EE。

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

  • 2 个管理器节点 (linux)
  • 2 个工作节点 (linux)
  • 2 个工作节点(Windows 服务器)
  • UCP
  • 码头工人群

当我构建一个 Windows 容器来运行基于 .NET 4.6.2 构建的 .NET 控制台服务时。这个容器是如何在 swarm 中分配的?

问题: 这将如何能够加入蜂群?

我的容器能否在运行 Linux 主机操作系统的工作节点上运行? docker swarm 如何管理节点的故障转移?副本是否只会分布在 Windows 工作节点上?我们的这种设置有意义吗?

我读到一些资料,Windows 容器只能在 Windows 主机上运行,​​但 Linux 容器可以同时运行 Linux 和 Windows 主机节点。本周将进行测试,但很高兴听到你的经历。 //TIA

【问题讨论】:

    标签: docker containers docker-swarm windows-container


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

      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  
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2023-04-06
        • 2021-01-23
        • 1970-01-01
        • 2022-01-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多