如何增加Docker容器的默认大小?

9
我们已经创建了一个默认大小为10GB的Docker镜像,并加载了Cassandra数据,现在它已满,意味着没有空间了。有人能告诉我们如何将Docker容器大小从10GB增加到40GB,而不会丢失现有的数据吗?

1
你能确认一下你正在使用哪个存储驱动程序吗?它在 docker info 下面。 - Adrian Mouat
3个回答

5
使用devicemapper作为Docker容器的默认基础大小已从10GB更改为100GB。这是github上相应拉取请求的链接。

修复问题#14678

当前默认基础大小为10G。将其更改为100G。原因是对于一些人来说,10G太小了,我们没有能力动态增长它。

这只是过度承诺,并且在容器实际写入数据之前不会分配任何真正的空间。这与基于fs的图形驱动程序没有区别,其中容器根的虚拟大小是无限的。

签名:Vivek Goyal vgoyal@redhat.com

使用最新版本的Docker应该可以解决您的问题。

5
我认为这是不可能的(也不会导致数据丢失)。以下是如何扩大基本大小的方法:
  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/。结果证明,您必须在扩大基本大小之后删除/拉取镜像。

这个解决方案可以用来调整一个容器的大小吗? - user2434658
这个在 Docker Toolbox 中也能用吗,还是只能在 Docker 中使用? - Donald S

1
在CentOS 7.7上的Docker Engine 19.03.6中,我通过以下步骤解决了这个问题:
# systemctl enable docker # systemctl stop docker # rm -rf /var/lib/docker # vim /etc/systemd/system/multi-user.target.wants/docker.service
>     # Add storage option    
>     ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock --storage-opt dm.basesize=20G

# systemctl daemon-reload

# systemctl start docker

系统命令,用于重新加载systemd管理的服务配置文件并启动Docker服务。

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