如何增加docker build的卷大小

Val*_*lev 7 docker

我的一个步骤是Dockerfile在磁盘上需要超过10G的空间.确实如此.但是,所有中间容器docker build都是使用10G卷创建的.

我做了什么:

  • 开始dockerd使用--storage-opt dm.basesize=25G(docker info说:Base Device Size: 26.84 GB)
  • 建设时禁用缓存
  • 重新拉动基础图像
  • 停止docker,从docker目录中删除所有内容,然后重新启动它

这并不好:df -h在一个中间容器中仍然显示一个10G磁盘,并docker inspect显示它"DeviceSize": "10737418240".

我错过了什么?如何增加基本卷大小?

小智 2

我不确定这个问题是否同时得到解决。但如果有人在 2019 年(或可能以后)偶然发现这个问题,解决此类问题的干净解决方案就是切换到另一个存储后端。

为此,请将所有值得保存的 Docker 数据复制到安全位置。停止 Docker 守护进程。删除/var/lib/docker(或将其移走,以便在出现问题时进行回滚)。然后重新创建一个空/var/lib/docker文件并添加daemon.json以下内容

{
  "storage-driver": "overlay2"
}
Run Code Online (Sandbox Code Playgroud)

然后,重新启动Docker守护进程,人为的10G限制就消失了。

有关更多详细信息,请参阅文档:https://docs.docker.com/storage/storagedriver/overlayfs-driver/

如果真的没有办法解决这个DeviceSize问题,我记得有一次手动创建它(在具有预期设备大小的命令的意义上dd),然后启动 Docker 守护进程。然而,从今天开始,这样做的必要性应该已经消失了。