Dockerのコンテナ・イメージの保存場所を変更[Docker]
Docker のイメージやコンテナは標準設定だと /var/lib/docker に格納される.
しかし, それではメインストレージの容量が膨らんでしまったときに収集がつかなくなってしまうので, サブのストレージに格納したい.
そこで本記事では,Dockerのコンテナ・イメージの保存先を外部ディスクへ変更する手順について説明する.
注意点:既に/var/lib/dockerでコンテナ・イメージを保存している場合は,そのデータの引越しが必要.
まずはdockerを止める.
$ sudo service docker stop$ sudo systemctl stop dockerdocker.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を使っていた場合は,元の場所から(デフォルトなら/var/lib/docker/volumes),変更先(今回の場合は,/home/ubuntu/disk/docker)にファイル・フォルダ一式をコピーする.
Dockerを再起動
$ sudo systemctl daemon-reload$ sudo systemctl restart dockerここまでくれば完了.正常に動作するかを確かめる.
$ docker run hello-wordHello worldが出たら,無事成功.
最後に指定したフォルダにdockerのファイルツリーが構築されているかを確認.
cd /home/ubuntu/disk/dockerubuntu@ip-xxx-xx-xx-xxx:~/disk/docker$ lltotal 56drwx--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