【Docker】本体はいつも通りの場所、イメージなどのデータは別の場所と配置する方法の紹介

 Dockerは容量を消費しやすいです。容量を使うのはイメージ、ビルドキャッシュ、ボリューム、生きてるコンテナです。それぞれを都度削除するのも手ですが、それでも限界になりやすいですしイメージやビルドキャッシュは削除したものが再び欲しくなる時も少なくないです。これの対策として最初から容量の大きなディスクに容量を使う部分を保存する方法があります。これを紹介します。

 使うのはDockerエンジンの設定ファイルである daemon.json です。これを /etc/docker/daemon.json に置きます。なければ作ります。daemon.json には様々な Docker エンジンの設定を書き込めます。例えばGPUを使う用のランタイム設定ができます。ここでイメージやらを置く場所のパスも設定できます。

daemon.jsonの使い方の概要は次リンク先にまとまっています。
Daemon | Docker Docs

使用可能な項目の詳細リストが次リンク先です。
dockerd | Docker Docs

 この記事の目的にそぐう設定項目は data-root です。

Daemon | Docker Docs#Daemon data directory

 data-root を設定するとデフォルトでは /var/lib/docker に保存されていた部分を別の場所に動かせます。 これは例えば次のようにできます

{
  "data-root": "/mnt/big_size_disk/docker"
}

 この設定を書いてDockerエンジンを再起動すれば、次からは /mnt/big_size_disk/docker にイメージなどが保存されます。以前作業した諸々を引き継ぎたいのであれば、Dockerを停止、次のようにファイルを移動、Dockerを再起動、とすればいいです。

# sudo systemctl stop docker などでdocker 停止
sudo rsync -aP /var/lib/docker/ /mnt/big_size_disk/docker/
# sudo systemctl start docker などでdocker 再起動

 こんな感じでDockerの容量が大きい部分を他に逃がすことができます。

>株式会社シーポイントラボ

株式会社シーポイントラボ

TEL:053-543-9889
営業時間:9:00~18:00(月〜金)
住所:〒432-8003
   静岡県浜松市中央区和地山3-1-7
   浜松イノベーションキューブ 315
※ご来社の際はインターホンで「316」をお呼びください

CTR IMG