我使用docker-compose来运行服务但它崩溃了,我进入了容器并通过“顶部'”获得了资源信息。如下。
top - 13:43:25 up 1 day, 6:46, 0 users, load average: 1.82, 0.74, 0.52
Tasks: 3 total, 1 running, 2 sleeping, 0 stopped, 0 zombie
%Cpu(s): 32.2 us, 22.4 sy, 0.0 ni, 40.1 id, 3.0 wa, 0.0 hi, 2.3 si, 0.0 st
KiB Mem: 2047040 total, 1976928 used, 70112 free, 172 buffers
KiB Swap: 1048572 total, 1048572 used, 0 free. 14588 cached Mem
所以我认为我的码头是内存不足。
我已尝试添加
mem_limit: 5g
memswap_limit: 5g
mem_reservation: 5g
进入docker-compose.yml
但似乎行不通。我的问题是,如何通过docker-compose扩大docker的内存限制。
答案 0 :(得分:0)
泊坞窗引擎具有兼容模式,旨在简化从撰写v2文件到v3的过渡。结果,可以部分使用swarm配置(deploy
)为标准docker-compose用法指定资源限制:
要在compatiblity mode中运行,只需添加--compatiblity
标志,如下所示:
docker-compose --compatibility up myservice
,您可以使用这样的撰写文件:
version: '3.5'
services:
myservice:
image: postgres:12-alpine
deploy:
resources:
limits:
cpus: '0.50'
memory: 50M
答案 1 :(得分:0)
如果这是在运行Docker Desktop的计算机上,则您必须打开Docker Desktop首选项,然后转到“资源”部分来调整Docker Engine可以使用多少主机资源。
答案 2 :(得分:-1)
如documentation中所述,可以在docker-compose中使用以下字段来控制内存和cpu资源。
deploy:
resources:
limits:
cpus: '0.001'
memory: 50M
reservations:
cpus: '0.0001'
memory: 20M
但是请注意,默认情况下,容器内存使用没有限制,因此设置内存标志不太可能有帮助。