我需要一个具有6GB RAM内存的Docker容器。我尝试了以下命令:
docker run -p 5311:5311 --memory=6g my-linux
Run Code Online (Sandbox Code Playgroud)
但这不起作用,因为我登录了Docker容器并检查了可用的内存量。这是显示仅2gb可用的输出:
>> cat /proc/meminfo
MemTotal: 2046768 kB
MemFree: 1747120 kB
MemAvailable: 1694424 kB
Run Code Online (Sandbox Code Playgroud)
我尝试在Docker应用程序中设置首选项->高级。如果我设置为6gb,则可以工作...我的意思是,我有一个6gb MemTotal的容器。这样我所有的容器都将有6gb ...
我想知道如何使用一些命令或在Docker File中设置一些内容来仅为一个容器分配6gb的内存。有什么帮助吗?
不要依赖于/proc/meminfo从Docker容器内部跟踪内存使用情况。/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用于构建容器,而不是运行它们),但是docker-compose通过mem_limit和memswap_limit键支持上述选项。
| 归档时间: |
|
| 查看次数: |
7466 次 |
| 最近记录: |