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