我想以群体模式创建docker服务,并使用docker-swap设置容器的交换值。但是,码头工人正在返回消息:
未知标志:--memory-swap
查看docker dencode上的文档,它说可以设置该标志。
我具有以下docker版本:
Client: Docker Engine - Community
Version: 19.03.3
API version: 1.40
Go version: go1.12.10
Git commit: a872fc2f86
Built: Tue Oct 8 00:59:59 2019
OS/Arch: linux/amd64
Experimental: false
Server: Docker Engine - Community
Engine:
Version: 19.03.3
API version: 1.40 (minimum version 1.12)
Go version: go1.12.10
Git commit: a872fc2f86
Built: Tue Oct 8 00:58:31 2019
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: 1.2.10
GitCommit: b34a5c8af56e510852c35414db4c1f4fa6172339
runc:
Version: 1.0.0-rc8+dev
GitCommit: 3e425f80a8c931f88e6d94a8c831b9d5aa481657
docker-init:
Version: 0.18.0
GitCommit: fec3683
要创建服务,请使用以下语句:
sudo docker service create \
--name servicename \
--replicas 1 \
--env DEBUG_LEVEL=0 \
--label com.docker.stack.image=imagename:latest \
--label com.docker.stack.namespace=namespace \
--label traefik.backend.loadbalancer.swarm=true \
--label traefik.docker.network=networkname \
--label traefik.port=80 \
--label traefik.webservice.frontend.entryPoints=https \
--reserve-memory=16M \
--limit-memory=128M \
--memory-swap=128M \
--limit-cpu=0.25 \
--network traefik-net2 \
我可以在没有交换设置的情况下创建服务,但是必须停用其他服务的交换。
我在这里找到了类似的问题,但答案无济于事:https://docs.docker.com/config/containers/resource_constraints/
编辑: 当我想在容器级别更新交换时,它正在工作:
docker update --memory-swap 128M containerId
当我想更新服务级别上的交换时,它不起作用并且出现相同的错误:
docker service update --memory-swap 128M serviceId