首页 > 解决方案 > Docker API V1.40 如何创建服务并将其连接到 swarm 覆盖网络以与其他堆栈点进行通信

问题描述

场景是:

我已经有一个 swarm 中的 docker 堆栈,覆盖网络名称是 xxx_default(xxx 是堆栈的名称),我想创建一个新服务并让它与堆栈中的其他服务通信。从命令行这个任务非常简单:

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

问题是我想通过在 swarm manager 节点上启用的 DOCKER API ENGINE 创建此服务。在 API 参考网站中没有关于如何将服务附加到网络的内容。

谁知道我怎么能通过 API 做到这一点?

标签: dockerdocker-swarmdocker-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**
        }
    ]
}

推荐阅读