Gepser Hoil Asked: 2020-01-24 16:02:35 +0800 CST 2020-01-24 16:02:35 +0800 CST 2020-01-24 16:02:35 +0800 CST 如何为 docker 容器分配更多资源? 772 当您创建 adocker container时,无法为其分配资源,例如RAM,disco duro等。我唯一看到的是如何打开端口以便与外部进行通信(请参见此处)以及如何添加卷(请参见此处)以存储或读取文件。 但是我还没有找到管理 a 资源的方法docker container,有人知道这是否可能吗?有默认值吗?它们会根据需求自动增长吗?他们可以被限制吗? 我搜索了官方文档,但没有找到任何相关内容。 docker 2 Answers Voted Best Answer FvD 2020-01-24T16:15:19+08:002020-01-24T16:15:19+08:00 您正在寻找的是run参考这里。作为直接响应复制文档中的示例: 分配 RAM(内存) 内存限制高达 300MB 且无交换 $ docker run -ti -m 300M --memory-swap -1 ubuntu:14.04 /bin/bash 有内存限制和所有可用的交换: $ docker run -ti -m 300M ubuntu:14.04 /bin/bash 文档中有许多其他选项(限制交换等)。看看我上面给出的参考。 分配硬盘 从版本 1.9.1。可以直接限制硬盘使用(响应事件#3804,您将在其中找到此功能的历史记录)。我自己没有使用过它,但根据文档,它将具有以下形式: $ docker create -it --storage-opt size=120G ubuntu:14.04 /bin/bash [...responde con un guid del nuevo contenedor .. $ docker start -a -i [.. aqui el guid de arriba ..] Art_Code 2020-05-22T04:58:06+08:002020-05-22T04:58:06+08:00 但是我还没有找到管理 docker 容器资源的方法,有人知道这是否可能吗? 如果可能,您可以通过以下方式对其进行管理: 1)如果您使用的是最新版本的 docker for windows (docker-for-windows) 或 for Mac (docker-for-mac),您可以在任务栏中找到鲸鱼图标(docker 的特性),右键单击图标并选择设置。完成此操作后,界面将显示为向应用程序分配资源。 2)可以使用docker命令分配资源,如下: 2.1)按容器名称: docker update --memory "2g" --cpuset-cpu "2" <ballena> 描述:在前面的命令中,我们为“鲸鱼”容器分配了 2 Gig 的 RAM 内存和 2 个内核。在“<>”里面放置了可以通过命令观察到的容器的名称docker ps。名称的放置必须不带“<>”符号,因为它们仅用于参考放置名称的位置。 2.2)通过容器的“id”: docker update --memory "1g" --cpuset-cpu "4" <0dca4f7e27a6> 描述:类似于 2.1)例如分配 1 Gig 的 ram 和 4 个内核给容器 id “0dca4f7e27a6”。考虑到“<>”符号在执行命令时也不应该出现。 3)如果您通过虚拟盒(比 docker-for-windows 更旧的版本)运行 docker,例如“Docker Toolbox”,您可以通过同一虚拟机提供的配置选项重新分配资源。 注意:对于使用带有 docker(VMware 驱动程序)的 VMware 的用户,也可以执行该过程。 4)例如,如果您使用 Virtualbox,并且您想通过命令分配资源,您可以尝试: docker-machine stop // Detienes la ejecución de docker VBoxManage modifyvm ballena --cpus 1 // Asignas 1 núcleo VBoxManage modifyvm ballena --memory 2048 // Asignas 2 Gb de RAM docker-machine start // Inicias nuevamente docker 注意:更改将在“鲸鱼”中执行 有默认值吗?它们会根据需求自动增长吗?他们可以被限制吗? RAM 内存的最小“默认”值为 4m(4 兆字节),如果分配了固定值(例如 3Gb),docker 将调整为最大值,如果未分配值,则 RAM 消耗将随着容器的需要而增加更多资源。所有其他资源(例如核心数量)也是如此。有关默认值及其限制的更多信息,您可以访问官方 docker 文档。 我希望能有所帮助。一切顺利!
您正在寻找的是
run
参考这里。作为直接响应复制文档中的示例:分配 RAM(内存)
内存限制高达 300MB 且无交换
有内存限制和所有可用的交换:
文档中有许多其他选项(限制交换等)。看看我上面给出的参考。
分配硬盘
从版本 1.9.1。可以直接限制硬盘使用(响应事件#3804,您将在其中找到此功能的历史记录)。我自己没有使用过它,但根据文档,它将具有以下形式:
如果可能,您可以通过以下方式对其进行管理:
1)如果您使用的是最新版本的 docker for windows (docker-for-windows) 或 for Mac (docker-for-mac),您可以在任务栏中找到鲸鱼图标(docker 的特性),右键单击图标并选择设置。完成此操作后,界面将显示为向应用程序分配资源。
2)可以使用docker命令分配资源,如下:
2.1)按容器名称:
描述:在前面的命令中,我们为“鲸鱼”容器分配了 2 Gig 的 RAM 内存和 2 个内核。在“<>”里面放置了可以通过命令观察到的容器的名称
docker ps
。名称的放置必须不带“<>”符号,因为它们仅用于参考放置名称的位置。2.2)通过容器的“id”:
描述:类似于 2.1)例如分配 1 Gig 的 ram 和 4 个内核给容器 id “0dca4f7e27a6”。考虑到“<>”符号在执行命令时也不应该出现。
3)如果您通过虚拟盒(比 docker-for-windows 更旧的版本)运行 docker,例如“Docker Toolbox”,您可以通过同一虚拟机提供的配置选项重新分配资源。
注意:对于使用带有 docker(VMware 驱动程序)的 VMware 的用户,也可以执行该过程。
4)例如,如果您使用 Virtualbox,并且您想通过命令分配资源,您可以尝试:
注意:更改将在“鲸鱼”中执行
RAM 内存的最小“默认”值为 4m(4 兆字节),如果分配了固定值(例如 3Gb),docker 将调整为最大值,如果未分配值,则 RAM 消耗将随着容器的需要而增加更多资源。所有其他资源(例如核心数量)也是如此。有关默认值及其限制的更多信息,您可以访问官方 docker 文档。
我希望能有所帮助。一切顺利!