Docker API V1.40如何创建服务并将其连接到群体覆盖网络以与其他堆栈点进行通信

问题描述

场景是:

我已经在一个集群中拥有一个Docker堆栈,覆盖网络名称为xxx_default(xxx是堆栈的名称),我想创建一个新服务,并使其与堆栈中的其他服务进行通信。 在命令行中,此任务非常简单:

docker service create --name test_web --network xxx_default Nginx:alpine

问题是我想通过在集群管理器节点上启用的DOCKER API引擎创建此服务。在API参考网站上,没有关于如何将服务附加到网络的信息。

谁知道如何通过API做到这一点?

解决方法

好的,因为Docker API参考网站崩溃了,并且不允许您打开折叠的属性,所以您应该下载API Json Swagger文件并在您的系统上观看,我通过以下方式找到了答案:

{
  "Name": "web","TaskTemplate": {
    "ContainerSpec": {
      "Image": "nginx:alpine"
    },"Placement": {},"Resources": {
      "Limits": {
        "MemoryBytes": 104857600
      },"Reservations": {}
    }
  },"Mode": {
    "Replicated": {
      "Replicas": 1
    }
  },"EndpointSpec": {
    "Ports": [
      {
        "Protocol": "tcp","PublishedPort": 8080,"TargetPort": 80
      }
    ]
  },"Networks": [
        {
            "Target": "xphic8cb0trx" **<-- it can be name or id of a network**
        }
    ]
}