docker, --storage-opts 和 aufs 存储驱动程序

docker, --storage-opts and aufs storage-driver

我想要限制容器大小的能力,但是使用默认存储驱动程序 aufs(对于 Ubuntu 14.04)我在尝试使用 --storage-opt 参数时遇到错误

$ docker create -it --name="disk_test" --storage-opt size=100G --cpuset-cpus="10,11,12,13,14,15,16,17" -m=16G ubuntu:14.04
Unable to find image 'ubuntu:14.04' locally
14.04: Pulling from library/ubuntu
04c996abc244: Pull complete
d394d3da86fe: Pull complete
bac77aae22d4: Pull complete
b48b86b78e97: Pull complete
09b3dd842bf5: Pull complete
Digest: sha256:bd00486535fd3ab00463b0572d94a62715cb790e482d5419c9179cd22c74520b
Status: Downloaded newer image for ubuntu:14.04
Error response from daemon: --storage-opt is not supported for aufs

当我使用 devicemanager 作为我的存储驱动程序时,它可以正常工作。如果我想限制我的容器根文件系统大小,我唯一的选择是选择 aufs 以外的东西吗?

您可以告诉 Docker 使用 DeviceMapper 存储后端而不是 AuFS。这样每个容器都会 运行 在块设备上

--storage-opt size=X 在 Docker 1.12 的 devicemapper, zfs and btrfs 上 运行 时可用,也可能在 windows 上可用。

该选项当前不适用于 aufs 或 overlay/2 存储驱动程序。

看起来 overlay2 on XFS 将在 Docker 1.13-1.14 中获得支持。 Ext4 支持将在一段时间后推出,因为它依赖于更新内核的更新,而不是当前使用的大多数发行版 (4.5+)。

aufs 可能无法获得此功能,因为 Docker 似乎正在推动将 overlay2 作为默认设置,因为 4+ 内核已经内置了对覆盖的支持。