在哪里以及如何在docker-compose.yml文件中放置docker将使用的最大内存限制?
version: "3"
services:
mysql:
image: "mysql:latest"
ports:
- "3306:3306"
environment:
MYSQL_ROOT_PASSWORD: test
backend:
image: "backend:latest"
ports:
- 19001:19001
- 80:80
- "9001:9000"
environment:
DB_USERNAME: test
DB_PASSWORD: test
DB_URL: jdbc:mysql://mysql:3306/test
jdbc_url: jdbc:mysql://mysql:3306
JAVA_HOME: "/application/jdk8"
links:
- "mysql:mysql"目前我正在运行一个后端应用程序,它正在耗尽内存(由于内存异常而崩溃)-这是在崩溃之前的使用情况:
CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS
71f94ad4b16c docker_backend_1 187.58% 1.113GiB / 1.952GiB 57.01% 92.4MB / 61.2MB 147MB / 180MB 73
dc2ec6cca410 docker_web_1 0.38% 95.71MiB / 1.952GiB 4.79% 2.05kB / 0B 59.6MB / 41kB 21
0960ca70127a docker_mysql_1 0.04% 277.3MiB / 1.952GiB 13.87% 60.2MB / 64.3MB 62.8MB / 3.58GB 51发布于 2018-03-30 21:17:40
在docker stats输出中看到1.952GiB限制,我可以猜测问题出在docker机器的默认配置上:默认情况下分配给它2 2GB的内存。
根据我的另一个答案here,您可以看到如何配置docker以便为容器提供更多内存。
发布于 2018-03-30 13:45:15
向您想要约束的服务添加deploy.resources部分。例如:
version: "3"
services:
mysql:
image: "mysql:latest"
deploy:
resources:
limits:
cpus: '0.50'
memory: 500M
reservations:
cpus: '0.25'
memory: 200M请参阅文档:https://docs.docker.com/compose/compose-file/#resources
https://stackoverflow.com/questions/49568948
复制相似问题