Назад | Перейти на главную страницу

Ускорьте удаление контейнеров докеров для Arch Linux

Между 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.

Мои вопросы:

UPD.

Наконец то я сделал это:

# arch linux
$ time docker rm 0b155dcf371c       
0b155dcf371c
docker rm 0b155dcf371c  0.01s user 0.01s system 87% cpu 0.030 total

Короткий ответ - мне пришлось переключить механизм хранения на aufs.

Длинный ответ:

  1. Установить aufs и linux-aufs_friendly посылки из аур
  2. Создайте новый личинка с помощью sudo grub-mkconfig -o /boot/grub/grub.cfg
  3. Перезагрузитесь в новое ядро
  4. Активируйте новые модули: modprobe loop, modprobe aufs
  5. Заставить докер использовать aufs: ExecStart=/usr/bin/docker daemon --storage-driver=aufs -H fd:// в /usr/lib/systemd/system/docker.service
  6. Перезагрузите докер: sudo systemctl restart docker

Обратите внимание, что все изображения, контейнеры и тома будут удалены из докера. Также настраиваемые модули ядра (например, vbox) перестанет работать, потому что есть две разные версии ядра. Действуйте осторожно.