如何通过terminal或DockerFile来设置Docker容器的RAM内存

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

docker run -p 5311:5311 --memory=6g my-linux 

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

 >> cat /proc/meminfo MemTotal: 2046768 kB MemFree: 1747120 kB MemAvailable: 1694424 kB 

我尝试设置首选项 – >在Docker应用程序中前进。 如果我设置6GB的,它的工作原理…我的意思是,我有一个6GB的MemTotal容器。 这样我所有的容器将有6GB …

我想知道如何使用一些命令或者在Docker文件中设置一些东西来为一个容器分配6GB的内存。 任何帮助?

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

你的/proc/meminfo表示你的主机系统有2G的可用内存。 只有在容器中可以获得6G而没有获得更多物理内存的唯一方法是创build一个交换分区。

一旦交换分区大于或等于4G,你的容器将能够使用该内存(默认情况下, docker不会对运行容器施加限制)。

如果你想限制你的容器可用内存的数量到6G,你可以使用docker run -p 5311:5311 --memory=2g --memory-swap=6g my-linux ,这意味着总共内存限制6G(– --memory-swap ),最高2G可能是物理内存( --memory )。 关于这方面的更多信息。

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