docker service create包含以下参数:

    1. [root@dev ~]# docker service create --help
    2. Usage: docker service create [OPTIONS] IMAGE [COMMAND] [ARG...]
    3. Create a new service
    4. Options:
    5. --cap-add list 添加Linux功能
    6. --cap-drop list 删除Linux功能
    7. --config config 指定要公开给服务的配置
    8. --constraint list 放置约束
    9. --container-label list 容器标签
    10. --credential-spec credential-spec 托管服务账户的凭证规范(Windows only)
    11. -d, --detach 立即退出而不是等待服务收敛
    12. --dns list 指定DNS
    13. --dns-option list 设置DNS选项
    14. --dns-search list 设置DNS搜索域
    15. --endpoint-mode string 端点模式(vip or dnsrr) (default "vip")
    16. --entrypoint command 覆盖镜像的默认ENTRYPOINT
    17. -e, --env list 设置环境变量
    18. --env-file list 从配置文件读取环境变量
    19. --generic-resource list 用户定义的资源
    20. --group list 为容器设置一个或多个补充用户组
    21. --health-cmd string 健康检查命令
    22. --health-interval duration 健康检查间隔(ms|s|m|h)
    23. --health-retries int 报告不健康需要连续失败次数
    24. --health-start-period duration 在重试计数到不稳定之前,开始容器初始化的时间段(ms|s|m|h)
    25. --health-timeout duration 允许一次健康检查最长运行时间(ms|s|m|h)
    26. --host list 设置一个或多个自定义主机到IP映射(host:ip)
    27. --hostname string 容器名称
    28. --init 在每个服务容器中使用init来转发信号并收集进程
    29. --isolation string 服务容器隔离模式
    30. -l, --label list 服务标签
    31. --limit-cpu decimal CPU限制
    32. --limit-memory bytes 内存限制
    33. --limit-pids int 限制最大进程数(default 0 = unlimited)
    34. --log-driver string 服务的日志记录驱动程序
    35. --log-opt list 记录驱动程序选项
    36. --max-concurrent uint 运行的工作任务数(default equal to --replicas)
    37. --mode string 服务模式(replicated, global, replicated-job, or global-job) (default "replicated")
    38. --mount mount 将文件系统挂载附加到服务
    39. --name string 服务名称
    40. --network network 网络附件
    41. --no-healthcheck 禁用任何容器指定的HEALTHCHECK
    42. --no-resolve-image 不查询注册表来解析图像摘要和支持的平台
    43. --placement-pref pref 添加放置首选项
    44. -p, --publish port 将端口发布为节点端口
    45. -q, --quiet 抑制进步输出
    46. --read-only 将容器的根文件系统挂载为只读
    47. --replicas uint 同时运行的副本数
    48. --replicas-max-per-node uint 每个节点的最大任务数(default 0 = unlimited)
    49. --reserve-cpu decimal 为本服务需要预留的CPU资源
    50. --reserve-memory bytes 为本服务需要预留的内存资源
    51. --restart-condition string 满足条件时重新启动("none"|"on-failure"|"any") (default "any")
    52. --restart-delay duration 重启尝试之间的延迟(ns|us|ms|s|m|h) (default 5s)
    53. --restart-max-attempts uint 放弃前的最大重启次数
    54. --restart-window duration 用于评估重启策略的窗口(ns|us|ms|s|m|h)
    55. --rollback-delay duration 任务回滚之间的延迟(ns|us|ms|s|m|h) (default 0s)
    56. --rollback-failure-action string 回滚失败的操作("pause"|"continue") (default "pause")
    57. --rollback-max-failure-ratio float 回滚期间容忍的失败率(default 0)
    58. --rollback-monitor duration 每次任务回滚后监视失败的持续时间(ns|us|ms|s|m|h) (default 5s)
    59. --rollback-order string 回滚选项("start-first"|"stop-first") (default "stop-first")
    60. --rollback-parallelism uint 同时回滚的最大任务数(0 to roll back all at once) (default 1)
    61. --secret secret 指定给要公开服务的密钥
    62. --stop-grace-period duration 在强行杀死容器之前等待的时间(ns|us|ms|s|m|h) (default 10s)
    63. --stop-signal string 发出信号停止容器
    64. --sysctl list Sysctl选项
    65. -t, --tty 分配伪终端
    66. --ulimit ulimit Ulimit选项(default [])
    67. --update-delay duration 更新之前的延迟(ns|us|ms|s|m|h) (default 0s)
    68. --update-failure-action string 更新失败后选项("pause"|"continue"|"rollback") (default "pause")
    69. --update-max-failure-ratio float 更新期间容忍的故障率(default 0)
    70. --update-monitor duration 每次更新任务后监视失败的持续时间(ns|us|ms|s|m|h) (default 5s)
    71. --update-order string 更新选项("start-first"|"stop-first") (default "stop-first")
    72. --update-parallelism uint 同时更新的最大任务数(0 to update all at once) (default 1)
    73. -u, --user string 用户名或UID(format: <name|uid>[:<group|gid>])
    74. --with-registry-auth swarm代理发送注册表身份验证详细信息
    75. -w, --workdir string 容器内的工作目录

    示例1:

    • 创建一个nginx服务,全局模式,端口8080映射到80。 [root@dev ~]# docker service create —name nginx —mode global -p 8080:80 nginx:alpine vq6m1v0j6djmvk9c194u194th
      overall progress: 1 out of 1 tasks
      tt2w1y6077sn: running [==================================================>]
      verify: Service converged
      [root@dev ~]# docker service ls
      ID NAME MODE REPLICAS IMAGE PORTS
      vq6m1v0j6djm nginx global 1/1 nginx:alpine *:8080->80/tcp

    示例2:

    • 创建一个nginx服务,全局模式,端口8080映射到80,限制cpu占比(例:2核数值范围是0.01~2.00),限制内存(最小4Mib)。 [root@dev ~]# docker service create —name nginx —mode global -p 8080:80 —limit-cpu 0.50 —limit-memory 8Mib nginx:alpine g6h9lcps97w3guavbmyn0d9fh
      overall progress: 1 out of 1 tasks
      tt2w1y6077sn: running [==================================================>]
      verify: Service converged
      [root@dev ~]# docker service ls
      ID NAME MODE REPLICAS IMAGE PORTS
      g6h9lcps97w3 nginx global 1/1 nginx:alpine *:8080->80/tcp
      [root@dev ~]# docker service inspect nginx
      [
      {
      “ID”: “g6h9lcps97w3guavbmyn0d9fh”,
      “Version”: {
      “Index”: 881
      },
      “CreatedAt”: “2022-06-09T08:11:46.301316219Z”,
      “UpdatedAt”: “2022-06-09T08:11:46.304259788Z”,
      “Spec”: {
      “Name”: “nginx”,
      “Labels”: {},
      “TaskTemplate”: {
      “ContainerSpec”: {
      “Image”: “nginx:alpine@sha256:a74534e76ee1121d418fa7394ca930eb67440deda413848bc67c68138535b989”,
      “Init”: false,
      “StopGracePeriod”: 10000000000,
      “DNSConfig”: {},
      “Isolation”: “default”
      },
      “Resources”: {
      “Limits”: {
      “NanoCPUs”: 500000000,
      “MemoryBytes”: 8388608
      },
      “Reservations”: {}
      },
      “RestartPolicy”: {
      “Condition”: “any”,
      “Delay”: 5000000000,
      “MaxAttempts”: 0
      },
      “Placement”: {
      “Platforms”: [
      {
      “Architecture”: “amd64”,
      “OS”: “linux”
      },
      {
      “OS”: “linux”
      },
      {
      “OS”: “linux”
      },
      {
      “Architecture”: “arm64”,
      “OS”: “linux”
      },
      {
      “Architecture”: “386”,
      “OS”: “linux”
      },
      {
      “Architecture”: “ppc64le”,
      “OS”: “linux”
      },
      {
      “Architecture”: “s390x”,
      “OS”: “linux”
      }
      ]
      },
      “ForceUpdate”: 0,
      “Runtime”: “container”
      },
      “Mode”: {
      “Global”: {}
      },
      “UpdateConfig”: {
      “Parallelism”: 1,
      “FailureAction”: “pause”,
      “Monitor”: 5000000000,
      “MaxFailureRatio”: 0,
      “Order”: “stop-first”
      },
      “RollbackConfig”: {
      “Parallelism”: 1,
      “FailureAction”: “pause”,
      “Monitor”: 5000000000,
      “MaxFailureRatio”: 0,
      “Order”: “stop-first”
      },
      “EndpointSpec”: {
      “Mode”: “vip”,
      “Ports”: [
      {
      “Protocol”: “tcp”,
      “TargetPort”: 80,
      “PublishedPort”: 8080,
      “PublishMode”: “ingress”
      }
      ]
      }
      },
      “Endpoint”: {
      “Spec”: {
      “Mode”: “vip”,
      “Ports”: [
      {
      “Protocol”: “tcp”,
      “TargetPort”: 80,
      “PublishedPort”: 8080,
      “PublishMode”: “ingress”
      }
      ]
      },
      “Ports”: [
      {
      “Protocol”: “tcp”,
      “TargetPort”: 80,
      “PublishedPort”: 8080,
      “PublishMode”: “ingress”
      }
      ],
      “VirtualIPs”: [
      {
      “NetworkID”: “nfh67iu8jcjk2h2z4n2f16971”,
      “Addr”: “10.0.0.132/24”
      }
      ]
      }
      }
      ]