Docker之CPU和内存磁盘设置(八)

前言

  Docker基本掌握使用方式,但是在限制其资源方面还没有接触。本篇就简单介绍一下有关CPU、内存等配置。让每个容器的资源分配更加合理,也能够避免一些容器遇到内存泄漏,CPU过载等问题影响其他容器的正常运行。

一、配置文件

  Docker中,配置文件可以用来调整守护进程的行为,包括磁盘、内存和CPU等方面的设置。这些设置通常在Docker守护进程的配置文件中进行,该文件通常位于/etc/docker/daemon.json。如果该文件不存在,你可以手动创建它。

    

{  
  "default-runtime": "runc",  #默认运行runc,也可以使用其他kata-containers或crun
  "exec-opts": [  
    "native.cgroupdriver=systemd"  # systemd服务选项
  ],  
  "live-restore": true,  # 保护守护进程重启时,避免中断运行的容器(但并不是全部功能都有效)
  "runtimes": {  # 运行时名称
    "runc": {  # docker默认运行
      "path": "/usr/local/bin/runc"
    },
  "kata":{ #kata-container运行
    "path": "/usr/bin/kata-runtime"  
  } },
"default-ulimits": [ # 默认Docker容器的默认资源限制 { "name": "nofile", "soft": 1024, # 软限制,超过则警告 "hard": 2048 # 硬限制,直接报错中断 } ], "log-driver": "json-file", # 日志 "log-opts": { "max-size": "10m", "max-file": "3" }, "storage-driver": "overlay2", # docker推荐驱动 "storage-opts": [ "overlay2.override_kernel_check=true" ], "resource-limits": { # 关于资源限制 "memory": { #内存1G "limit": "1g" }, "cpu": { #CPU "shares": 512, #CPU权重(shares)为512 "quota": 100000, #CPU配额(quota)为100,000微秒 "period": 100000 #周期(period)为100,000微秒 }, "disk": { "quota": "10g" # 磁盘10G } } }

   配置好之后,需要通过重启docker服务生效。

~]# sudo systemctl restart docker #重启
~]# sudo systemctl status docker  #查看信息

二、配置参数

  一些常用的参数。以下是你可以在Docker配置文件中设置的一些与磁盘、内存和CPU相关的选项:

磁盘
storage-driver:指定Docker使用的存储驱动。例如,overlay2是一个常用的选择。
data-root:设置Docker守护进程使用的根目录,用于存储镜像、容器和其他数据。
bip:指定Docker守护进程使用的桥接IP地址。这有助于控制Docker网络的IP范围。
内存
default-memory:设置容器的默认内存限制。
default-memory-swap:设置容器的默认内存加Swap的限制。
memory-swappiness:控制容器使用Swap空间的倾向性。
exec-memory-limit:设置容器执行内存限制的标志。
CPU
cpu-rt-runtime:设置容器实时调度的运行时间。
cpu-rt-period:设置容器实时调度的调度周期。
cpus:设置容器可以使用的CPU核心数。
cpuset-cpus:指定容器可以使用的CPU核心。
cpuset-mems:指定容器可以使用的内存节点。

   想了解具体配置,可去官网查看最新的配置。地址:https://docs.docker.com/config/containers/resource_constraints/

  

posted @ 2024-03-07 22:33  Auler  阅读(60)  评论(0编辑  收藏  举报