kazeno memo

メモとか

Rootless Docker with Btrfs

一般ユーザーで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でマウントされていれば、エラーは出ないはずです。