让 Arch Linux 的 Docker 容器删除速度更快

让 Arch Linux 的 Docker 容器删除速度更快

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

长话短说就是:

  1. 从 aur安装aufs和软件包linux-aufs_friendly
  2. 使用以下命令生成新的 grubsudo grub-mkconfig -o /boot/grub/grub.cfg
  3. 重新启动到新内核
  4. 激活新模块:modprobe loopmodprobe aufs
  5. 强制docker使用aufs ExecStart=/usr/bin/docker daemon --storage-driver=aufs -H fd:///usr/lib/systemd/system/docker.service
  6. 重启docker:sudo systemctl restart docker

请注意,所有镜像、容器和卷都将从 docker 中删除。此外,自定义内核模块(如vbox)将停止工作,因为有两个不同版本的内核。请谨慎操作。

相关内容