Docker运行资源控制

更新日期: 2022-06-03阅读: 641标签: Docker

概述

一个 docker host 上会运行若干容器,每个容器都需要 CPU 、 内存 和 IO 资源 。对于 KVM,VMware 等虚拟化技术,用户可以控制分配多少 CPU、内存资源给每个虚拟机。对于容器,Docker 也提供了类似的机制避免某个容器因占用太多资源而影响其他容器乃至整个 host 的性能。


内存限额

与操作系统类似,容器可使用的内存包括两部分: 物理内存和swap

 docker run -m 或 --memory 设置内存的使用限额。 docker run --memory-swap 设置内存和swap的使用限额。例如当运行命令: docker run -m 100M --memory-swap 200M ,该命令表明容器允许使用的最大内存为100M,允许使用的swap最大为100M。默认情况下,上面两组参数为 -1,即对容器内存和 swap 的使用没有限制。


CPU权重

默认设置下,所有容器可以平等地使用 host CPU 资源并且没有限制。Docker 可以通过 -c 或 -- cpu -shares 设置容器使用 CPU 的 权重 。如果不指定,默认值为 1024。与内存限额不同,通过 -c 设置的 cpu share 并不是 CPU 资源的绝对数量,而是一个相对的权重值。某个容器最终能分配到的 CPU 资源取决于它的 cpu share 占所有容器 cpu share 总和的比例。


Block IO 配置

Block IO 是另一种可以限制容器使用的资源。Block IO 指的是 磁盘的读写 ,docker 可通过设置权重、限制 bps  iops 的方式控制容器读写磁盘的带宽,下面分别讨论。

目前 Block IO 限额只对 direct IO(不使用文件缓存)有效。

默认情况下,所有容器能平等地读写磁盘,可以通过设置 -- blkio -weight 参数来改变容器 block IO 的优先级。 -- blkio -weight 与 -- cpu -shares 类似,设置的是相对权重值,默认为 500。在下面的例子中,container_A 读写磁盘的带宽是 container_B 的两倍。

docker run -it --name container_A -- blkio -weight 600 rhel
docker run -it --name container_B -- blkio -weight 300 rhel


链接: https://www.fly63.com/article/detial/11648

npm私有仓库 配置verdaccio在docker环境

前端开发过程中,少不了自己封装一些通用的包,但又不想放在公共的平台,所以搭建一个npm私有的仓库是很有必要的。在这里简单介绍如何使用 verdoccio 在docker环境下的配置。verdoccio,轻量级私有npm代理注册表。

ASP.NET Core 如何在运行Docker容器时指定容器外部端口(docker compose)

所以我们可以通过修改docker compose的配置文件来完成我们的需求。熟悉Docker的都应该知道容器运行时其内部会有一个端口以映射到我们外部的端口,我们需要固定的就是这个外部端口。

DOCKER上运行DOTNET CORE

下载microsoft/dotnet镜像、创建.NET Core MVC项目、上面dotnet restore这一步可能会卡很久遇到超时的状况,因为Nuget在国外的原因,博客园有提供加速镜像,参照设定好之后,速度会快很多

Docker---大型项目容器化改造

虚拟化和容器化是项目云化不可避免的两个问题。虚拟化由于是纯平台操作,一个运行于linux操作系统的项目几乎不需要做任何改造就可以支持虚拟化。而项目如果要支持容器化则需要做许多细致的改造工作。

开发人员爱Docker的10个理由

Stack Overflow开发人员调查中,开发人员将Docker评为:最受欢迎的平台,最喜欢的平台,最常用的平台。来自世界各地的近90,000名开发人员对调查做出了回应。

Docker部署网站之后映射域名

Docker中部署tomcat相信大家也都知道,不知道的可以google 或者bing 一下。这里主要是为了记录在我们启动容器之后,tomcat需要直接定位到网站信息,而不是打开域名之后,还得加个blog后缀才能访问到我们的网站首页。

微服务架构之「 容器技术 」

现在一聊到容器技术,大家就默认是指 Docker 了。但事实上,在 Docker 出现之前,PaaS社区早就有容器技术了,以 Cloud Foundry、OpenShift 为代表的就是当时的主流。那为啥最终还是 Docker 火起来了呢?

Docker部署ngnix静态网站

首先获取ngnix镜像(默认的是最新版),先来编写一个最简单的Dockerfile,一个Dockerfile修改该Nginx镜像的首页.Dockerfile是一个文本文件,其中包含了若干条指令

如何从单独的容器调试运行中的Docker容器?

容器非常适合封装软件,但是有时一味地改造容器镜像以使其尽可能小时,您可能走得太远。我们需要在“简洁”的镜像和无法调试的镜像之间找到很好的平衡。看到人们调试正在运行的容器的正常方法

内部集群的 DNS server 搭建

当我们使用 traefik 反向代理和自动服务发现后,我们对集群内部的服务分为两类:公有服务。如我的博客,网站,以及为它们提供服务的 API。我们可以通过公有的域名去映射服务使得外网能够访问

点击更多...

内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!