0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Docker ComposeのVolumeについて理解した事をまとめた

Last updated at Posted at 2025-10-18

前書き

Docker ComposeのVolume定義について理解した内容を、備忘録としてまとめる。
公式ドキュメントを読むだけでは分かりにくい「volumesセクションの役割」や「サービス側との関連」について、実際に検証して得た知見を整理した。

注意
本記事では、Docker Composeファイルの一番下に記載する「volumes」セクションについて解説する。

Docker ComposeのVolumesの概要

  • コンテナが削除されてもデータを保持するための仕組み
  • コンテナ内で作られたファイルは通常コンテナと一緒に消えるが、volumesを使うことでホスト側や専用のストレージに保存し続けられる
  • volumesがあることで、アプリのログ・DBデータなどの依存ファイルを永続化できる

Volumesの書き方

メソッド 説明
volumes: Docker Compose で使うボリューム(データを保存する場所)を定義するセクション。ここに書いた内容は、後でサービス側から参照できる
test_volume: 作成するボリュームの名前。この例では「test_volume」という名前のボリュームを作る

永続ボリューム

volumes:
  test_volume: {} 

永続ボリュームで使用したメソッドと説明

メソッド 説明
{} 特に設定を書かない「空の定義」。何も指定しなくても、Docker が自動的に ローカルドライバ(自分のPCのディスク上にデータを保存する仕組み)を使ってボリュームを作る

一時ボリューム

volumes:
  test_volume:
    driver: local
    driver_opts:
      type: tmpfs
      device: tmpfs

一時ボリュームで使用したメソッドと説明

メソッド 説明
driver: ボリュームをどの仕組み(ドライバ)で作るかを指定する。 local は Docker 標準のローカルドライバ(ホストマシン上にデータを保存する仕組み) を意味する
driver_opts: driver に追加設定(オプション)を渡すための項目。ここで指定した内容により、ボリュームの動作や保存場所を細かく制御できる
type: tmpfs ボリュームの種類を指定する。tmpfs は メモリ(RAM)上に一時的なファイルシステムを作る仕組み を意味する。つまり、ディスクではなくメモリ上にデータを保存する
device: tmpfs 使用するデバイスを指定する。tmpfs とすることで「このボリュームは tmpfs(=メモリ上の仮想ストレージ)を使う」という指定になる。

永続ボリュームと一時ボリュームの違い

永続ボリューム と 一時ボリューム の違いは、データの保存場所データの寿命 にある

項目 永続ボリューム 一時ボリューム(tmpfs)
保存場所 ホストマシンのディスク上 メモリ(RAM)上
永続性 コンテナを削除しても残る コンテナ停止・削除で消える
データの保持期間 手動で削除するまで保持
(docker volume rm が必要)
一時的(再起動でリセット)
速度 通常 高速(RAMアクセス)
ディスク容量の消費 あり なし(RAMを使用)
主な用途 データベースやログ、Gemなどの永続キャッシュ テスト、開発時の一時キャッシュ、高速化用途

用語説明

RAM

  • パソコンが作業するときに使う一時的な作業台のようなもの
  • 動かしているアプリやデータを、すぐに取り出せる場所に置いておくための領域

ディスク(SSD / HDD)とは

  • ディスクは、データを長く保管しておくための倉庫のようなもの
  • 写真、プログラム、ドキュメントなど、消えずに保存したいものを入れておく場所

RAMとディスクの比較表

項目 RAM(メモリ) ディスク(SSD / HDD)
役割 CPUが直接アクセスして処理中のデータやプログラムを一時的に保持する領域 データやプログラムを長期間保持するための永続ストレージ
性質 揮発性
(電源を切ると内容が失われる)
不揮発性
(電源を切っても内容が保持される)
アクセス速度 非常に高速
(ナノ秒〜マイクロ秒単位)
低速
(ミリ秒単位)
容量 比較的小さい
(数GB〜数十GB)
大容量
(数百GB〜数TB)
主な用途 実行中プロセスのワーキングメモリ、キャッシュ、バッファ OS、アプリケーション、データファイル、ログの保存
物理的構造 半導体メモリ
(DRAMなど)
フラッシュメモリ(SSD)または磁気ディスク(HDD)
例え 作業中の机の上
(すぐ使う資料を広げておく場所)
書庫や本棚
(長期間保管しておく場所)

参考記事

公式

非公式

感想

今回は、Docker ComposeのVolume設定について自分なりに整理してまとめました。毎回「これ何の設定だっけ?」と迷うことが多かったので、改めて調べ直して理解を深めました。今後は、用途に応じて永続ボリュームと一時ボリュームをうまく使い分けていこうと思います。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?