首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何通过码头或DockerFile设置码头容器的内存

如何通过码头或DockerFile设置码头容器的内存
EN

Stack Overflow用户
提问于 2017-06-28 15:03:10
回答 1查看 10.8K关注 0票数 6

我需要一个带有6gb内存的Docker容器。我试过这个命令:

代码语言:javascript
复制
docker run -p 5311:5311 --memory=6g my-linux

但是它不起作用,因为我登录到了Docker容器,并检查了可用的内存量。这是显示只有2gb可用的输出:

代码语言:javascript
复制
>> cat /proc/meminfo

MemTotal:        2046768 kB
MemFree:         1747120 kB
MemAvailable:    1694424 kB

我尝试在Docker应用程序中设置preferences ->。如果我设置了6gb,它就能工作..。我的意思是,我有一个有6gb MemTotal的容器。这样我所有的容器都有6gb..。

我想知道如何使用一些命令或在Docker中设置一些东西,只为一个容器分配6gb的内存。有什么帮助吗?

EN

回答 1

Stack Overflow用户

发布于 2017-06-28 20:40:02

不要依赖/proc/meminfo来跟踪停靠容器内的内存使用情况。/proc/meminfo而不是容器,这意味着文件正在显示主机系统的meminfo。

您的/proc/meminfo表示您的主机系统有2G内存可用。使容器中的6G可用而不需要更多物理内存的唯一方法是创建一个交换分区。

一旦您拥有一个较大或等于~4G的交换分区,您的容器将能够使用该内存(默认情况下,docker不限制运行容器)。

如果希望将容器可用的内存量显式限制为6G,则可以执行docker run -p 5311:5311 --memory=2g --memory-swap=6g my-linux,这意味着在总内存限制6G (--memory-swap)中,最多2G可能是物理内存(--memory)。有关此这里的更多信息。

据我所知,没有办法在Dockerfile中设置内存限制(而且我认为不应该存在:Dockerfile是用来构建容器的,而不是运行它们的),但是Dockerfile通过mem_limitmemswap_limit键支持上述选项。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44806234

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档