rootless DockerでBtrfsストレージドライバ使うとsub del出来なくて怒られるけど、マウントオプションにuser_subvol_rm_allowedつければ解決するぽい
— kazeno (@kazenoasagi) 2020年11月28日
一般ユーザーでdockerdを動かすDockerのrootless modeは、Btrfsストレージドライバに対応しています。(ただし、サポートされてない)
Rootless Dockerのインストール
$ sudo apt install uidmap $ curl -fsSL https://get.docker.com/rootless | sh //.bashrc $ echo -e '## Docker rootless\nexport PATH=$HOME/bin:$PATH\nexport DOCKER_HOST=unix:///run/user/1000/docker.sock"' >> ~/.bashrc //サービスの有効化 $ systemctl --user enable docker $ systemctl --user start docker
ストレージドライバを確認
$ docker info 2>/dev/null | grep "^ Storage Driver:" Storage Driver: btrfs
Btrfsのマウントオプション
一般ユーザーで作成したSubvolumeをsubvolume delete
してみると、権限エラーが出ます。
user_subvol_rm_allowed
というマウントオプションを追加することで、一般ユーザーがSubvolumeを削除することが出来るようになります。
/etc/fstab
/dev/sda3 /home btrfs default,user_subvol_rm_allowed 0 0
再起動するか、mount -o remount,user_subvol_rm_allowed /home
でマウントオプションを適用します。
テスト
AlpineLinuxのイメージをdocker pull
した後、docker rmi
してみます。
//Alpine Linuxのイメージをダウンロード $ docker pull alpine:latest //イメージを削除 $ docker rmi alpine:latest
user_subvol_rm_allowed
でマウントされていれば、エラーは出ないはずです。