ubuntu 和 arch linux 之间容器删除的速度有很大差异:
# ubuntu
$ time docker rm 2761334a4236
2761334a4236
real 0m0.025s
user 0m0.017s
sys 0m0.004s
# arch linux
$ time docker rm 190b9f1b195b
190b9f1b195b
docker rm 190b9f1b195b 0.08s user 0.01s system 6% cpu 1.356 total
我怀疑 docker 如何利用 ubuntu 和 arch 的文件系统存在很大差异,但我没有找到关于如何在 arch linux 上使其更快的明确解释。
我的问题是:
- 是否可以让 docker 在 arch linux 上和 ubuntu 上以相同的速度删除容器?
- 我怎样才能达到那样的速度?
更新。
答案1
最后我做到了:
# arch linux
$ time docker rm 0b155dcf371c
0b155dcf371c
docker rm 0b155dcf371c 0.01s user 0.01s system 87% cpu 0.030 total
简短的回答是 - 我必须将存储引擎切换到aufs
。
长话短说就是:
- 从 aur安装
aufs
和软件包linux-aufs_friendly
- 使用以下命令生成新的 grub
sudo grub-mkconfig -o /boot/grub/grub.cfg
- 重新启动到新内核
- 激活新模块:
modprobe loop
,modprobe aufs
- 强制docker使用aufs
ExecStart=/usr/bin/docker daemon --storage-driver=aufs -H fd://
:/usr/lib/systemd/system/docker.service
- 重启docker:
sudo systemctl restart docker
请注意,所有镜像、容器和卷都将从 docker 中删除。此外,自定义内核模块(如vbox
)将停止工作,因为有两个不同版本的内核。请谨慎操作。