Closed luojiyin1987 closed 10 months ago
启动命令要加参数:https://docs.docker.com/compose/compose-file/compose-versioning/#compatibility-mode
Do not use this in production
We recommend against using --compatibility mode in production. The resulting configuration is only an approximate using non-Swarm mode properties, it may produce unexpected results.
它自己都不建议使用 compatibility-mode
Do not use this in production We recommend against using --compatibility mode in production. The resulting configuration is only an approximate using non-Swarm mode properties, it may produce unexpected results.
它自己都不建议使用 compatibility-mode
你看我上面的博文,如果不加这个就必须用 docker stack deploy
来基于 Swarm 运行,否则就不生效。
Do not use this in production We recommend against using --compatibility mode in production. The resulting configuration is only an approximate using non-Swarm mode properties, it may produce unexpected results.
它自己都不建议使用 compatibility-mode
你看我上面的博文,如果不加这个就必须用
docker stack deploy
来基于 Swarm 运行,否则就不生效。
那里不生效 ? 通过 docker stats 别的 docker 容器最大的使用内存是主机内存, kys-ows_kys-ows_1 是 3.9G 多,接近 4000M。
资料 在docker compose v3 版本中添加 对 deploy 的支持, 在deploy 没看到对运行模式的要求,是否是 swarm。
swarm 已经几年不维护了, 业界对 swarm 的评价也不好。
你引用的中文资料已经是几年前了。
在 Linux 中, 很容易通过 cgroups 和 namespaces, 限制资源分配。
现在通过
sudo dmesg -T -l err
anon-rss:4004128kB 说明内存被限制到 4000M 左右, 容器内存使用到3544M 触发 cgroup 的 OOM , 重启容器,释放内存。
docker info
中 是
Swarm: inactive
docker node ls
Error response from daemon: This node is not a swarm manager. Use "docker swarm init" or "docker swarm join" to connect this node to swarm and try again.
docker service ls
Error response from daemon: This node is not a swarm manager. Use "docker swarm init" or "docker swarm join" to connect this node to swarm and try again.
可以看出这东西跟 Swarm 没强相关。
那里不生效 ? 通过 docker stats 别的 docker 容器最大的使用内存是主机内存, kys-ows_kys-ows_1 是 3.9G 多,接近 4000M。
资料 在docker compose v3 版本中添加 对 deploy 的支持, 在deploy 没看到对运行模式的要求,是否是 swarm。
swarm 已经几年不维护了, 业界对 swarm 的评价也不好。
你引用的中文资料已经是几年前了。
在 Linux 中, 很容易通过 cgroups 和 namespaces, 限制资源分配。
终于找到确切的官方说法了,只有 deploy.resources
被 Docker compose 支持,所以不需要加启动命令参数,而其它属性就必须要加参数:
The following sub-options only takes effect when deploying to a swarm with docker stack deploy, and is ignored by
docker-compose up
anddocker-compose run
, except forresources
.
https://docs.docker.com/compose/compose-file/compose-file-v3/#deploy
Checklist(清单):
Closes #286