Lio*_*ion 14 linux docker docker-compose
我只是想在docker-compose文件中限制一些Docker容器的资源.原因很简单:主机上运行多个应用程序/服务.所以我想避免,单个容器可以使用例如所有内存,这会损害其他容器.
从我学到的文档中,可以使用这个来完成resources.但这已经超越了deploy.所以我必须编写我的docker-compose文件,如下例所示:
php:
image: php:7-fpm
restart: always
volumes:
- ./www:/www
deploy:
resources:
limits:
memory: 512M
Run Code Online (Sandbox Code Playgroud)
这给了我警告:
警告:某些服务(php)使用'deploy'键,将被忽略.Compose不支持部署配置 - 用于
docker stack deploy部署到群组.
这似乎是正确的:docker stats确认,容器能够使用来自主机的所有ram.
文件说:
指定与部署和运行服务相关的配置.这仅在使用docker stack deploy部署到swarm时生效,并且被docker-compose up和docker-compose run忽略.
但我不需要聚类.似乎没有其他方法可以使用docker composer文件来限制资源.为什么不能指定某种类型的memory标签,比如start-parameter docker run?
例: docker run --memory=1g $imageName
这适用于单个容器.但是我不能使用它(至少在没有违反清晰的关注点的情况下),因为我需要使用两个不同的容器.
我发现,我可以mem_limit在从版本3降级到版本2(放在version: '2'顶部)之后直接使用.但我们目前使用的是版本3.1,因此这不是一个长期的解决方案.文档说,这deploy.resources是v2标签的新替代品mem_limit.
有一天,版本2已被弃用.因此,对于最新版本,资源管理是不可能的,至少没有一个群体?对我来说似乎在恶化,不能相信这个......
Ber*_*ard -2
您可以在单个主机上以 swarm 模式运行 docker 守护进程。它将添加额外的不需要的功能,例如 etcd 服务发现,但这都是幕后的事情。
Docker 文档在这里有一个关于它的“注释” https://docs.docker.com/engine/swarm/swarm-tutorial/# Three-networked-host-machines
| 归档时间: |
|
| 查看次数: |
5049 次 |
| 最近记录: |