上下文:我在Archlinux下,并且想要创建一个dockerfile作为我在Ubuntu 16.04(xenial)下程序用户的参考。它在apt上只有一个旧的OpenCV版本(2.4),因此我需要从源代码编译OpenCV。
问题:OpenCV编译会创建超过10G的数据,这是容器大小限制(用df -h
可见),因此在完成编译之前会崩溃。
最后一次尝试失败:我看到有一个守护程序选项--storage-opt dm.basesize=20G
。所以我更改了docker.service行:
# from
ExecStart=/usr/bin/dockerd -H fd://
# to
ExecStart=/usr/bin/dockerd --storage-opt dm.basesize=20G -H fd://
重新启动守护程序服务并修剪所有映像和容器后,命令docker info
现在显示“基本设备大小:21.47GB”,而不是以前的10GB。但是,每个新容器的大小限制仍然为10G。命令df -h
显示:
root@71802e5b7ba4:/# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/docker-8:6-1704110-b5a7ec35a707f478a4a836ff859108092bbe32525d558d4f6661efba91313801 10G 139M 9.9G 2% /
...
关于如何更改此设置的任何想法吗?
答案 0 :(得分:1)
您也可以使用devicemapper
存储驱动程序(old example)来完成此操作。您只需要删除(docker rmi
)并首先构建/拉动已使用的Docker映像即可。更改存储驱动程序还会触发从头开始将所有图像拖到文件系统,因此可以理解为什么它与overlay2
一起使用。