2023-08-30 / @syui

docker

dockerの/var/lib/dockerを外付けhddに移動する

検索しても適切な方法が見つからなかったので手順を記録します。

これをそのままcp, rsync, mvしても、そのファイルは使えません。

failed: Operation not permitted

これはformat:ext4が関係しているかもしれません。

しかし、基本的には、論理ボリュームを作成、mountした上でrsyncします。

$ sudo systemctl stop docker.service

# 論理ボリュームの作成
$ sudo vgcreate docker /dev/sdb1
$ sudo vgs
$ sudo lvcreate -L 600G -n docker docker
$ sudo vgs -o +lv_size,lv_name
$ sudo mkfs.ext4 /dev/docker/docker

# 論理ボリュームのmount
$ mkdir -p ~/mnt/tmp
$ sudo mount /dev/docker/docker ~/mnt/tmp/

# ファイルの移行
$ sudo rsync -avx /var/lib/docker/ ~/mnt/tmp
# backup
$ sudo mv /var/lib/docker /var/lib/docker.back

# /var/lib/docker
$ sudo mkdir /var/lib/docker
$ sudo chmod 710 /var/lib/docker
$ sudo mount /dev/docker/docker /var/lib/docker
# umount
$ sudo umount ~/mnt/tmp
$ sudo rm -rf ~/mnt/tmp
# auto-mount
$ sudo fdisk -l
$ sudo blkid | grep sdb1
UUID=$uuid

$ sudo vim /etc/fstab
/dev/docker/docker /var/lib/docker ext4 defaults 0 0

dockerは肥大化しやすいのに罠すぎる。