达到一组内存使用量或CPU限制时如何杀死Docker容器

时间:2019-06-15 06:16:59

标签: docker kubernetes

我有一个docker容器,该容器在pod中运行,当它超出内存使用量或CPU限制时,需要重新启动pod /容器。如何在docker文件中配置它

1 个答案:

答案 0 :(得分:2)

构建泊坞窗时无法给出CPU和内存限制,并且无法在Docker File中进行配置。这是一个调度问题。您可以使用带有不同标志的docker run命令运行docker来控制资源。有关docker run的那些控制标志,请参见Docker Official Document

由于您的问题被标记为kubernetes,因此有kubernetes种方式来限制您的资源。您可能希望在规格中为这些resourcesdeployment的Yaml添加pod。例如:

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: your_deployment
  labels:
    app: your_app
spec:
  replicas: 1
  template:
    metadata:
      labels:
        app: your_app
    spec:
      containers:
      - name: your_container
        image: your_image
        resources:
          limits:
            cpu: "500m"
            memory: "128Mi"
          requests:
            cpu: "250m"
            memory: "64Mi"
        ...

requests影响节点上调度docker pod的方式。 Memory limit确定何时为OOM杀死docker,而cpu limit确定如何限制容器cpu的使用(不会终止pod)。

cpu的含义对于每个云服务提供商而言都是不同的。有关更多信息,请参阅manage compute resources for Kubernetes