podman image ls
にいきなり16秒もかかったりしてつらい思いをしていた(2021.08.12時点)がbtrfsドライバーからfuse-overlayfsに変更したら快適になった。たぶんdockerでも同じだと思われる。overlay2はディストリビューションによってサポートされていたりしなかったりしそう(dockerのドキュメントを見て雑に書いています)。一度全てのイメージを削除する必要があることに注意。
$ podman ps --all --storage | awk 'NR>1{ print $1 }' | xargs -I{} podman container rm {} $ podman system reset $ sudo rm -rf ~/.local/share/containers/ $ cat <<- EOF > ~/.config/containers/storage.conf [storage] driver = "overlay" [storage.options] mount_program = "/usr/bin/fuse-overlayfs" EOF $ podman info | grep fuse Executable: /usr/bin/fuse-overlayfs Package: fuse-overlayfs-1.4.0-1.4.x86_64 fusermount3 version: 3.10.4 fuse-overlayfs: version 1.4
ついでに~/.local/share/containers
をbtrfs subvolumeにしてsnapperによる自動バックアップ対象から除外しておいた。
以下は調べ物の残骸
- Use the BTRFS storage driver | Docker Documentation
- https://github.com/containers/podman/blob/main/docs/source/markdown/podman.1.md: --storage-driver, --storage-optなるフラグがあるらしい。rootで動かしている場合は/etc以下に設定ファイルを置く
- https://news.ycombinator.com/item?id=25169423: fuse-overlayfsはファイルディスクリプタの数や実行速度でoverlay2?より劣るという噂(とはいっても手元では今のところ何の問題もない)
- https://github.com/moby/moby/issues/10161#issuecomment-250762915: dockerのbtrfsドライバがつらくて--storage-driver=overlayを指定した人(これだけだと既存のイメージが動かないのでresetが必要)
- https://github.com/containers/podman/issues/8705#issuecomment-744357805: storage.confのサンプル
ドキュメントを読んで方を付けられるようになろうな
btrfsに戻すなら
[storage] driver = "btrfs"
とすればよさそう。