我们如何为Docker容器设置RAM和磁盘空间?

问题描述 投票:2回答:2

以下是我拥有的Docker容器和图像的详细信息。

Animeshs-MacBook-Pro:docker_tests animesh$ docker-machine ls
NAME          ACTIVE   URL          STATE     URL                         SWARM   DOCKER    ERRORS
celery-test   *        virtualbox   Running   tcp://192.168.99.100:2376           v1.9.1    
hello-world   -        virtualbox   Stopped                                       Unknown   

Animeshs-MacBook-Pro:docker_tests animesh$ docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                      PORTS               NAMES
33f0eca77b4c        celery-image1       "/bin/bash"         2 hours ago         Exited (0) 25 minutes ago                       current_image
a4607f34b309        ubuntu:latest       "/bin/bash"         4 hours ago         Exited (0) 3 hours ago                          celery_app

Animeshs-MacBook-Pro:docker_tests animesh$ docker-machine ssh celery-test
Boot2Docker version 1.9.1, build master : cef800b - Fri Nov 20 19:33:59 UTC 2015
Docker version 1.9.1, build a34a1d5

docker@celery-test:~$ df -h
Filesystem                Size      Used Available Use% Mounted on
tmpfs                   896.6M    889.6M      7.0M  99% /
tmpfs                   498.1M         0    498.1M   0% /dev/shm
cgroup                  498.1M         0    498.1M   0% /sys/fs/cgroup
none                    464.8G     44.0G    420.8G   9% /Users
tmpfs                   896.6M    889.6M      7.0M  99% /mnt/sda1/var/lib/docker/aufs

docker@celery-test:~$ exit

Animeshs-MacBook-Pro:docker_tests animesh$ docker start current_image
current_image

Animeshs-MacBook-Pro:docker_tests animesh$ docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                   PORTS               NAMES
33f0eca77b4c        celery-image1       "/bin/bash"         2 hours ago         Up 3 seconds                                 current_image
a4607f34b309        ubuntu:latest       "/bin/bash"         4 hours ago         Exited (0) 3 hours ago                       celery_app

Animeshs-MacBook-Pro:docker_tests animesh$ docker attach current_image
root@33f0eca77b4c:/# df -h
Filesystem      Size  Used Avail Use% Mounted on
none            897M  890M  7.0M 100% /
tmpfs           499M     0  499M   0% /dev
tmpfs           499M     0  499M   0% /sys/fs/cgroup
tmpfs           897M  890M  7.0M 100% /etc/hosts
shm              64M     0   64M   0% /dev/shm

root@33f0eca77b4c:/# exit
exit

Animeshs-MacBook-Pro:docker_tests animesh$ 

我似乎在虚拟机上用完了空间。

我想为celery-image1图像分配8GB磁盘空间和2GB RAM。我该怎么办?

如果创建容器时可以输入任何命令行参数,我也可以这样做。

docker virtual-machine docker-machine
2个回答
0
投票

如果运行$man docker run并查找“内存”,则可以找到:

   -m, --memory=""
      Memory limit (format: <number>[<unit>], where unit = b, k, m or g)


   Allows you to constrain the memory available to a container. If the host supports swap memory, then the -m memory setting can be larger than physical RAM. If  a  limit
   of  0  is  specified  (not  using -m), the container's memory is not limited. The actual limit may be rounded up to a multiple of the operating system's page size (the
   value would be very large, that's millions of trillions).


   --memory-reservation=""
      Memory soft limit (format: <number>[<unit>], where unit = b, k, m or g)


   After setting memory reservation, when the system detects memory contention or low memory, containers are forced to restrict their consumption to their reservation. So
   you should always set the value below --memory, otherwise the hard limit will take precedence. By default, memory reservation will be the same as memory limit.


   --memory-swap=""
      Total memory limit (memory + swap)

这些是您在运行$docker run时可以设置的标志。必须注意,您还可以为CPU使用率设置一些限制。


0
投票

您可以指定RAM限制according to the documentation

无法限制磁盘大小(但是有一些work on that)。

© www.soinside.com 2019 - 2024. All rights reserved.