Docker - 内存问题 - 如何将其设置为更高的值?

Docker - memory issue - how to set it to higher value?

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

向要限制的服务添加 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

看到 docker 统计输出中的 1.952GiB 限制,我可以猜测问题出在 docker 机器的默认配置上:它分配有 2GB 内存默认情况下。

根据我的其他回答 ,您可以了解如何配置 docker 以便为容器提供更多内存。