Dockerfile
中的一个步骤需要磁盘空间超过10G。确实如此。但是,docker build
中的所有中间容器都是使用10G卷创建的。
我做了什么:
dockerd
开始--storage-opt dm.basesize=25G
(docker info
说:Base Device Size: 26.84 GB
)不合适:中间容器中的df -h
仍显示10G
个磁盘,docker inspect
显示"DeviceSize": "10737418240"
。
我错过了什么?如何增加基本卷大小?
答案 0 :(得分:0)
我不确定此问题是否已解决。但是,如果有人在2019年(或以后)偶然发现此问题,则解决此类问题的最佳方法是切换到另一个存储后端。
为此,请将所有可保留的Docker数据复制到安全位置。停止Docker守护程序。删除/var/lib/docker
(或将其移开,以便在出现任何问题时回滚)。然后重新创建一个空的/var/lib/docker
,并添加具有以下内容的文件daemon.json
{
"storage-driver": "overlay2"
}
然后,重新启动Docker守护程序,人为的10G限制已消失。
有关更多详细信息,请参见文档:https://docs.docker.com/storage/storagedriver/overlayfs-driver/
如果真的无法解决DeviceSize
的问题,我记得曾经手工创建过(在dd
命令中指的是预期的设备大小),然后再启动Docker守护程序。但是,从今天起,这样做的必要性应该消失了。
答案 1 :(得分:0)
要授予容器访问更多空间的权限,我们需要注意两点:
--storage-opt dm.basesize=25G
开头示例:
--storage-opt dm.basesize=25G
docker run -it --rm ubuntu:xenial df -h
docker rmi ubuntu:xenial
docker pull ubuntu:xenial
docker run -it --rm ubuntu:xenial df -h