当前位置: 首页 > news >正文

【docker】docker资源管理

docker资源管理

docker cpu管理

Docker提供了多种方式来管理容器的CPU使用情况,包括以下几种方法:

  1. CPU限制:使用--cpus参数可以限制容器使用的CPU核心数。例如,docker run --cpus 2将限制容器使用2个CPU核心。
  2. CPU共享:使用--cpu-shares参数可以为容器分配CPU资源的相对份额。较高值的容器将获得更多的CPU时间。例如,docker run --cpu-shares 512将为容器分配512个CPU份额。

创建容器时可以使用选项 --cpu-shares
数值(该数值要为1024的倍数,1024代表一份,当个容器占用cpu的份额由自身分配的份数除于所有容器占用cpu的份数,就为该容器所占用cpu资源的百分比)进行分配

  1. CPU集合:使用--cpuset-cpus参数可以将容器限制在特定的CPU核心或CPU集合上运行。例如,docker run --cpuset-cpus 0,1将限制容器在CPU核心0和1上运行。
  2. CPU配额:使用--cpu-quota参数可以为容器设置CPU配额。例如,docker run --cpu-quota 50000将为容器设置每秒钟最多可以使用 50000 微秒的 CPU 时间。
  3. CPU周期:使用--cpu-period参数可以为容器设置CPU周期。例如,docker run --cpu-period 100000将为容器设置100,000微秒的CPU周期。

docker 内存管理

Docker有几种方式来管理容器的内存使用情况:

  1. 限制容器可以使用的内存量:可以使用--memory选项来限制容器可以使用的内存量。例如,可以使用--memory=1g选项将容器的内存限制为1GB。

  2. 内存交换限制:可以使用--memory-swap选项来设置容器可以使用的交换空间的限制。默认情况下,Docker会将--memory-swap设置为--memory的两倍。(非必要)

  3. 容器内存分配策略:Docker支持以下几种容器内存分配策略:

    • --memory-swappiness选项:可以设置容器对交换空间的使用程度。默认情况下,Docker将此选项设置为60。
    • --oom-kill-disable选项:可以禁止Docker在内存不足时杀死容器。默认情况下,此选项是禁用的。
    • --oom-score-adj选项:可以设置容器的OOM分数调整值。较低的OOM分数意味着容器更有可能被杀死。默认情况下,此选项为0。
  4. 查看容器的内存使用情况:可以使用docker stats命令来查看容器的内存使用情况,包括使用的内存量、缓冲区和缓存量、交换空间使用情况等。

1、当网络模式使用container模式时,几个容器中的服务是否可以通过localhost或者127.0.0.1进行通信

container 网络模式

Container 网络模式是 Docker 中一种较为特别的网络的模式。在创建容器时通过参数 --net container:已运行的容器名称|ID 或者 --network container:已运行的容器名称|ID 指定;
处于这个模式下的 Docker 容器会共享一个网络栈,这样两个容器之间可以使用 localhost 高效快速通信。

docker network create --driver bridge --subnet=22.0.0.0/24 test-net
 docker run --name testnginx -d -p 81:80 --net test-net nginx
docker run --name testtomcat -d  --network container:testnginx tomcat

在这里插入图片描述
在这里插入图片描述

2、创建一个默认桥接的容器,将容器连接到自定义网络

docker network create --driver bridge my_network                                            docker run -d --name nginx_container \                                                     --network my_network \ -p 90:80 \    nginx          

在这里插入图片描述

3、创建一个httpd容器

docker run -d --name httpd_container \  -p 100:80 \httpd

使用物理机访问httpd服务
在这里插入图片描述

使用虚拟机访问httpd服务
在这里插入图片描述

进入容器查看httpd的日志
在这里插入图片描述

4、修改cfs公共参数中的cpu.cfs_quota_us改为20000,创建容器测试cpu用量

cd /sys/fs/cgroup/cpu/docker/
code cpu.cfs_quota_us  
# 20000
# save
docker run -id --name c1 centos
docker exec -it c1 bash
vi cpu.sh
#!/bin/bash
i=0
while true
do
let i++
done
chmod +x cpu.sh
./cpu.sh
top

在这里插入图片描述

5、构建一个docker容器,限制其可用最大内存为1024mb

docker run --name testc --memory 1024m -id centos  
docker stats

在这里插入图片描述

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 基础 - 前端知识体系详解
  • 无人机里的陀螺仪/加速器/气压计/GPS详解
  • ubuntu22.04 mysql 移动数据目录后 systemctl start mysql无法启动的解决方案
  • 1. windows搭建Kafka教程
  • [nsight compute使用指南] 查看存储体冲突
  • Halcon阈值处理的几种分割方法
  • 【MySQL】事务管理
  • Redis单线程模式
  • stm32入门学习14-电源控制
  • vue2中使用i18n配置elementUi切换语言
  • 数学基础 -- 卷积与矩阵乘法的区别
  • 基于R语言遥感随机森林建模与空间预测;遥感数据处理与特征提取;数据分析与可视化
  • 央企数据架构师徐智确认出席「第六届数据智能高峰论坛」
  • 容器化部署ES集群
  • 得到任务式 大模型应用开发学习方案
  • [PHP内核探索]PHP中的哈希表
  • 「译」Node.js Streams 基础
  • 【挥舞JS】JS实现继承,封装一个extends方法
  • markdown编辑器简评
  • mysql 数据库四种事务隔离级别
  • MySQL数据库运维之数据恢复
  • React 快速上手 - 06 容器组件、展示组件、操作组件
  • SpriteKit 技巧之添加背景图片
  • tensorflow学习笔记3——MNIST应用篇
  • Vue 重置组件到初始状态
  • Wamp集成环境 添加PHP的新版本
  • WinRAR存在严重的安全漏洞影响5亿用户
  • 等保2.0 | 几维安全发布等保检测、等保加固专版 加速企业等保合规
  • 今年的LC3大会没了?
  • 聊聊flink的BlobWriter
  • 免费小说阅读小程序
  • 前端 CSS : 5# 纯 CSS 实现24小时超市
  • 深度解析利用ES6进行Promise封装总结
  • 一个项目push到多个远程Git仓库
  • 在weex里面使用chart图表
  • [地铁译]使用SSD缓存应用数据——Moneta项目: 低成本优化的下一代EVCache ...
  • Python 之网络式编程
  • 资深实践篇 | 基于Kubernetes 1.61的Kubernetes Scheduler 调度详解 ...
  • ​数据链路层——流量控制可靠传输机制 ​
  • ​云纳万物 · 数皆有言|2021 七牛云战略发布会启幕,邀您赴约
  • ​字​节​一​面​
  • #### go map 底层结构 ####
  • #《AI中文版》V3 第 1 章 概述
  • #java学习笔记(面向对象)----(未完结)
  • #我与Java虚拟机的故事#连载11: JVM学习之路
  • #我与Java虚拟机的故事#连载18:JAVA成长之路
  • (C++17) std算法之执行策略 execution
  • (附源码)springboot美食分享系统 毕业设计 612231
  • (理论篇)httpmoudle和httphandler一览
  • (一)80c52学习之旅-起始篇
  • (转)linux自定义开机启动服务和chkconfig使用方法
  • (转)德国人的记事本
  • (转)树状数组
  • (转载)OpenStack Hacker养成指南
  • .[hudsonL@cock.li].mkp勒索加密数据库完美恢复---惜分飞