docker容器底层资源限制与隔离

本文最后更新于:2022年4月17日 晚上

docker容器底层资源限制与隔离

进阶了解的体验与使用

一、Namespace

1、查看容器的进程号

方式一:

1
docker top [容器名]

方式二:

1
docker inspect --format="{{.State.Pid}}" [容器名]

2、在宿主机中查看进程是否和容器的进程号一致

1
2
docker ps -a
ps -aux |grep [容器编号]

3、在宿主机中查看该进程的namespace

1
ls -l /proc/[pid号]/ns

二、容器内存资源限制

docker run命令后加入相应参数

1、内存限制

选项 功能说明
-m,–memory 内存限制,格式是数字加单位,单位可以为 b,k,m,g,默认最小为4M
–memory-swap 内存+交换分区大小总限制。必须比-m设置的大,不设置默认为-m的2倍
–memory-reservation 内存软性限制,它不保证任何时刻容器使用的内存不会超过限定值,它只是确保容器不会长时间占用超过
–oom-kill-disable 阻止OOM-killer杀死超过内存限制的容器。

注意:如果不设置--oom-kill-disable参数,内存超过限定参数的容器将被强制停止。

2、CPU限制

选项 功能说明
–cpus 使用的CPU核数限制
–cpuset-cpus 指定容器使用CPU,CPU编号从0开始
-c,–cpu-shares 随机指定CPU,容器空闲自动将CPU资源释放,docker将资源自动分配到高负载容器中使用,空闲容器启动从其他容器将资源分配给当前容器使用

3、磁盘IO资源限制

选项 功能说明
–device-read-iops 磁盘每秒最多可以执行多少IO读操作
–device-write-iops 磁盘每秒最多可以执行多少IO写操作
–device-read-bps 磁盘每秒最多可以读多少比特(bytes)
–device-write-bps 磁盘每秒最多可以写多少比特(bytes)

Docker容器资源利用率查看

1
docker stats

如果能查到进程号,可以使用

1
htop

📣特别声明

此文章全部都是依靠自己的学习理解来写的原创文章,难免可能会出现有错误的地方,

如果大家以后阅读的时候发现有问题,那就麻烦到下方评论区来进行错误指出,使错误尽快做出改正,

在此,感谢大家的阅读与支持!🤝💦🎉

🍻支持一下

觉得我写的好的话可以支持一下我哦~持续关注我,会更新其他好玩且实用的项目。

👋如果我能帮助到你,那就请我喝杯🧋呗~👇👇👇


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!