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/
分类:
Linux/CentOS
, docker
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· NetPad:一个.NET开源、跨平台的C#编辑器
· PowerShell开发游戏 · 打蜜蜂
· 凌晨三点救火实录:Java内存泄漏的七个神坑,你至少踩过三个!