基于Docker基于LXC的事实,我的建议是Docker容器从其主机操作系统共享各种资源.我担心的是CPU内核.这是一个场景:
a)因此,如果我在该主机上运行所有docker容器,它们是否会根据需要消耗CPU /内核,就像它们是作为主机操作系统上的正常安装的应用程序一样运行?
b)docker容器是否会使用自己的进程,并且其中包含的所有处理都将粘贴到该父进程的CPU核心?
c)如何指定一个docker容器来使用多个内核(例如4个).我看到有一个-C标志可以指向核心ID,但似乎没有选项指定容器随机选择N个核心.
目前,我认为docker不提供这种级别的粒度.它没有指定它在lxc.conf文件中分配的内核数量,因此您将获得每个docker的所有内核(可能是1,我不是100%肯定).
但是,您可以调整为给定容器生成的conf文件并设置类似的内容
cpuset {
cpuset.cpus="0-3";
}
Run Code Online (Sandbox Code Playgroud)
可能是最新(少数)版本的内容发生了变化.现在你可以使用以下参数限制你的docker容器docker run:新docker版本中当前答案的等价物是
docker run ubuntu /bin/echo 'Hello world --cpuset-cpus="0-3"
但是,这会将docker进程限制为这些CPU,但是(如果我错了请纠正我)其他容器也可以请求同一套.一种可能更好的方法是使用CPU份额.
有关更多信息,请参阅https://docs.docker.com/engine/reference/run/
| 归档时间: |
|
| 查看次数: |
24212 次 |
| 最近记录: |