我们已经创建了默认大小为10GB的docker镜像,我们已经加载了cassandra数据,现在它已经填满,意味着没有空间。任何人都可以告诉如何在不丢失现有数据的情况下将docker容器大小从10GB增加到40GB。
答案 0 :(得分:3)
我认为不可能(没有丢失数据)。以下是扩大基数的方法:
(可选)如果您已经通过Caused by: java.lang.RuntimeException: Error occurred while publishing artifact to Artifactory: ...file-SNAPSHOT.msi.
下载了任何图片,则需要先清除它们 - 否则它们将不会调整大小
docker pull
编辑存储配置
docker rmi your_image_name
应该有vi /etc/sysconfig/docker-storage
之类的内容,将其更改为DOCKER_STORAGE_OPTIONS="..."
重启docker deamon
DOCKER_STORAGE_OPTIONS="... --storage-opt dm.basesize=100G"
拉动图片
service docker restart
(可选)验证
docker pull your_image_name
docker run -i -t your_image_name /bin/bash
我一直在努力解决这个问题,直到找到这个链接http://www.projectatomic.io/blog/2016/03/daemon_option_basedevicesize/ 事实证明,你必须在放大基础后移除/拉出图像。
答案 1 :(得分:2)
使用devicemapper的Docker容器的默认基础大小已从10GB更改为100GB。这是指向corresponding pull request in github的链接。
修正问题#14678
目前的默认基数为10G。将其更改为100G。原因是为了 有些人10G变得太小而我们没有能力 以动态的方式发展它。
这只是过度使用,直到容器才分配真实空间 实际上写数据。这与基于fs的图形驱动器没有什么不同 其中容器根的虚拟大小是无限的。
签名:Vivek Goyal vgoyal@redhat.com
使用最新版本的docker可以解决您的问题。
答案 2 :(得分: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