CV・NLPハマりどころメモ

画像認識と自然言語処理を研究する中でうまくいかなかったことと、その対策をまとめる自分用メモが中心。

Dockerのコンテナ・イメージの保存場所を変更[Docker]

Docker のイメージやコンテナは標準設定だと /var/lib/docker に格納される.

しかし, それではメインストレージの容量が膨らんでしまったときに収集がつかなくなってしまうので, サブのストレージに格納したい.

まずはdockerを止める.

$ sudo service docker stop
$ sudo systemctl stop docker

docker.serviceファイルをコピーし, Unitファイルを編集

sudo cp /lib/systemd/system/docker.service /etc/systemd/system/

/etc/systemd/system/docker.service をvimなどで開き,以下の行を探して --data-root オプションをつける. --data-rootオプションの後にコンテナ・イメージを保存するディレクトリを指定.

ExecStart=/usr/bin/dockerd -H unix:// # 編集前
ExecStart=/usr/bin/dockerd -H unix:// --data-root /home/ubuntu/disk/docker # 編集後

Dockerを再起動

$ sudo systemctl daemon-reload
$ sudo systemctl restart docker

ここまでくれば完了.正常に動作するかを確かめる.

$ docker run hello-word

Hello worldが出たら,無事成功.

最後に指定したフォルダにdockerのファイルツリーが構築されているかを確認.

cd /home/ubuntu/disk/docker

ubuntu@ip-xxx-xx-xx-xxx:~/disk/docker$ ll
total 56
drwx--x--x 14 ubuntu ubuntu 4096 Nov 14 07:27 ./
drwx--x--x  3 ubuntu ubuntu 4096 Nov 14 07:27 ../
drwx------  2 root   root   4096 Nov 14 07:27 builder/
drwx------  4 root   root   4096 Nov 14 07:27 buildkit/
drwx------  3 root   root   4096 Nov 14 07:27 containers/
drwx------  3 root   root   4096 Nov 14 07:27 image/
drwxr-x---  3 root   root   4096 Nov 14 07:27 network/
drwx------  6 root   root   4096 Nov 14 07:27 overlay2/
drwx------  4 root   root   4096 Nov 14 07:27 plugins/
drwx------  2 root   root   4096 Nov 14 07:27 runtimes/
drwx------  2 root   root   4096 Nov 14 07:27 swarm/
drwx------  2 root   root   4096 Nov 14 07:27 tmp/
drwx------  2 root   root   4096 Nov 14 07:27 trust/
drwx------  2 root   root   4096 Nov 14 07:27 volumes/

上のようなファイルツリーが表示されれば,作業完了だ.

初期のディレクトリは混乱の元になるので削除しておこう.

sudo rm -r /var/lib/docker