调整Docker容器的磁盘使用量

13
每个Docker容器都将配置10GB的磁盘空间,这是CentOS中devicemapper的默认配置。那么如何在默认情况下为新创建的每个容器配置超过10GB的磁盘空间?(主机服务器安装有CentOS 6和Docker 1.7.1)
4个回答

8

可以。启动Docker守护进程时使用dm.basesize属性。例如:

docker daemon --storage-opt dm.basesize=50G ...

更多信息可以在官方文档中找到。


3
谢谢你的回答。很抱歉我在问题中忘记发布一些设置。我使用的主机服务器安装有CentOS 6和Docker-1.7.1。你提到的命令在Docker-1.7.1中不受支持。 - Xingjun Wang

6
  1. (可选) 如果您已经通过docker pull下载了任何镜像,那么您需要首先清除它们 - 否则它们不会被调整大小。

    docker rmi your_image_name

  2. 编辑存储配置

    vi /etc/sysconfig/docker-storage

    应该有类似于DOCKER_STORAGE_OPTIONS="..."的东西,将其更改为DOCKER_STORAGE_OPTIONS="... --storage-opt dm.basesize=100G"

  3. 重新启动docker守护程序

    service docker restart

  4. 拉取镜像

    docker pull your_image_name

  5. (可选) 验证

    docker run -i -t your_image_name /bin/bash

    df -h

我在苦苦挣扎中,直到发现这个链接 http://www.projectatomic.io/blog/2016/03/daemon_option_basedevicesize/,结果发现您必须在扩大基本大小后删除/拉取镜像。


4

对于使用 Mac 的用户,这里有一个更简单的解决方案:

从状态栏中的 Docker 图标中单击“首选项”:

请输入图片描述

然后切换到“磁盘”选项卡,使用滑块调整磁盘镜像的大小。Docker 会花一些时间重新启动。

请输入图片描述

就是这样。


2
上述答案提到我们需要编辑devicemapper的dm.basesize属性,但是这些解决方案已经过时或者在我的情况下不起作用。
首先,请确保您的存储驱动程序是一个devicemapper:
docker info | grep "Storage Driver"

您可以使用以下命令检查容器的当前最大大小:(默认为10 GB)

docker info | grep "Base Device Size"

来源于 devicemapper 文档

1) 在 /etc/docker/daemon.json 文件中编辑 dm.basesize,如果该文件不存在,则创建一个新文件。

{
  "storage-opts": [
    "dm.basesize=30G"
  ]
}

2) 重新启动Docker守护进程

 sudo systemctl stop docker
 sudo systemctl start docker

3) 再次运行以下命令以检查大小是否更改

docker info | grep "Base Device Size"

4) 重要的是更新当前图像,以便应用更改。


请问可以解释一下为什么我被踩了吗?只有这个解决方案对我有效。 - Phate P

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接