背景

容器资源配置

  • CPU利用率控制

  • 内存限额

构建容器时指定资源参数设置

--build-arg=[] :
设置镜像创建时的变量;
--cpu-shares :
设置cpu使用权重;
--cpu-period :
限制CPU CFS周期;
--cpu-quota :
限制cPU CFS配额;
--cpuset-cpus :
指定使用的CPU id;
--cpuset-mems :
指定使用的内存id;
--disable-content-trust :忽略校验,默认开启;-f :
指定要使用的Dockerfile路径;
--force-rm :
设置镜像过程中册删除中间容器;
--isolation :
使用容器隔离技术;
--label=[ ] :
设置镜像使用的元数据;
-m :
设置内存最大值;
--memory-swap :
设置Swap的最大值为内存+swap, "-1"表示个/限swap;
--no-cache :
创建镜像的过程不使用缓存;
--pull :
尝试去更新镜像的新版本;
--quiet, -q :
安静模式,成功后只输出镜像工D;
--rm :
设置镜像成功后删除中间容器;
--shm-size :
设置/dev/ shm的大小,默认值是64M;
--ulimit :
Ulimit配置。
--squash :
将Dockerfile中所有的操作压缩为一层。
--tag, -t:
镜像的名字及标签,通常name: tag或者name
格式;可以在一次构建中为一个镜像设置多个标签。
--network :
默认default。在构建期间设置RUN指令的网络模式

CPU利用率设置

  • CPU周期:ls为一个周期的定律,参数值一般为100000(秒)
  • 用stress压力测试工具测试CPU和内存使用情况

内存限额

  • docker -m或者--memory 设置内存使用限额
  • docker --memeory-swap 设置swap使用限额

总结

  • 资源限制主要类型:CPU、磁盘、内存、IO

  • 资源限制方式:构建镜像时指定镜像资源限制,构建容器时指定容器的资源限制,容器启动后在宿主机对应容器目录下修改资源限制

  • 资源限制查询:docker inspect 镜像ID/容器ID,或者直接查看宿主机对应容器ID资源限制文件(/sys/fs/cgroup/*)