代码之家  ›  专栏  ›  技术社区  ›  balteo

docker中指定的资源限制-合成.ymldocker未考虑

  •  3
  • balteo  · 技术社区  · 6 年前

    我试图在我的工作中设置资源限制 码头工人-合成.yml 文件。

    在这里:

    version: "3.7"
    services:
      postgres:
        build: "docker/postgres"
        container_name: "postgres"
        ports:
        - 5432:5432
        environment:
          POSTGRES_USER: prodev
          POSTGRES_PASSWORD: prodev
          POSTGRES_MULTIPLE_DATABASES: pro_dev, pro_test
        networks:
        - my_proto_app
      the_api:
        deploy:
          resources:
            limits:
              cpus: '0.001'
              memory: 50M
            reservations:
              cpus: '0.0001'
              memory: 20M
        image: the_api:latest
        ports:
        - 8080:8080
        depends_on:
        - postgres
        links:
        - postgres
        networks:
        - my_proto_app
    networks:
      my_proto_app:
        internal: false
    

    但是,当我跑的时候 docker stats 为了深入了解我的资源限制,我注意到没有考虑我的限制:

    CONTAINER ID        NAME                CPU %               MEM USAGE / LIMIT     MEM %               NET I/O             BLOCK I/O           PIDS
    c0b7d2fffc42        postgres            0.04%               20.89MiB / 1.952GiB   1.05%               148kB / 171kB       0B / 856kB          16
    0a0f9e482f86        api_the_api_1       2.16%               739.5MiB / 1.952GiB   37.00%              409kB / 464kB       0B / 73.7kB         59
    

    编辑 docker-compose up

    1 回复  |  直到 4 年前
        1
  •  6
  •   Yan Khonski    4 年前

    部署 (使用compose文件格式版本3及更高版本)。这个 只在swarm模式下工作的键。以群集模式运行

      docker swarm init 
    

    样品装卸工-合成.yml在CPU和内存资源受限的群部署中部署

      version: "3.3"
      services:
      tomcat:
        image: tomcat
        deploy:
          resources:
            limits:
              cpus: '0.5'
              memory: 250M
            reservations:
              cpus: '0.5'
              memory: 120M
    

    要在docker堆栈中部署的命令

      docker stack deploy --compose-file=docker-compose.yml stackname
    

    参考URL: https://docs.docker.com/compose/compose-file/compose-versioning/#version-2x-to-3x

    如果要在非swarm部署上设置资源限制,请使用Compose file format version 2。

    样品装卸工-合成.yml在CPU和内存资源受限的非群集部署中部署

     version: "2.2"
     services:
       tomcat:
         image: tomcat
         cpus: "0.5"
         mem_limit: 512m
    

    运行docker-合成.yml带命令的文件

      docker-compose up
    

    使用检查CPU和内存资源限制 docker stats

    裁判: https://docs.docker.com/compose/compose-file/compose-file-v2/#cpu-and-other-resources