Docker Volume(ドッカーボリューム)
Dockerコンテナ永続化ストレージ。Named Volume(docker volume create)・Bind Mount(-v /host:/container)・tmpfs(メモリ)・NFS/CIFS/sshfs driver・CSI Plugin・Portworx/Longhorn/OpenEBS(K8s)代表、2026年CNCF CSI基盤でKubernetes PersistentVolume統合標準化進行。
概要
Docker Volume はコンテナの永続化ストレージを提供する仕組みで、コンテナのライフサイクルを超えてデータを保持できる。
コンテナが停止・削除されても、Volume に保存されたファイルは残るため、設定ファイルやログ、データベースのバックアップに利用される。
2025年に登場した Docker Engine 20.10 以降では、Volume の管理がより高速化され、データ転送速度が 5GB/s 近辺に達している。
主な特徴・仕組み
-
Named Volume
docker volume createで作成し、コンテナに-v volume_name:/pathでマウント。
データは Docker の内部ディレクトリ/var/lib/docker/volumes/に格納され、ホスト側のパスは隠蔽される。 -
Bind Mount
-v /host/path:/container/pathでホストの任意ディレクトリを直接マウント。
開発環境でソースコードをリアルタイムに反映させる際に有効。 -
tmpfs
メモリ上にマウントされる一時ファイルシステム。
速度は 30GB/s を超えるが、電源オフでデータは失われる。 -
ドライバ拡張
NFS、CIFS、sshfs、CSI Plugin などを利用して、クラウドストレージや共有ファイルシステムを Volume として扱える。
2026年に発表された CSI 1.5 では、Kubernetes PersistentVolume と統合するための標準化が進む。 -
Kubernetes 連携
Longhorn 1.4、Portworx 3.5、OpenEBS 3.1 などの CSI プラグインを利用すれば、Pod の再スケジュール時もデータが保持される。
スペック/製品比較表
| Volume タイプ | 主な用途 | ストレージ容量 | I/O 性能 | 主要ドライバ |
|---|---|---|---|---|
| Named Volume | 永続データ | 1TB まで | 5GB/s | local |
| Bind Mount | 開発環境 | 100GB まで | 30GB/s | local |
| tmpfs | 一時データ | 10GB まで | 30GB/s | memory |
| NFS | ネットワーク共有 | 5TB まで | 2GB/s | nfs |
| CSI (Longhorn) | クラウド原生 | 2TB まで | 1GB/s | longhorn |
具体例・対応製品
- Docker Desktop 4.15(Windows 11)
- Docker Engine 20.10(Linux)
- Portworx 3.5(Kubernetes 1.28)
- Longhorn 1.4(Kubernetes 1.28)
- OpenEBS 3.1(Kubernetes 1.28)
- CSI 1.5(Kubernetes 1.28)
自作PCでの選び方・注意点
- ストレージ容量
1TB 以上を想定する場合は SSD か NVMe を選択。 - I/O 性能
データベースやビッグデータ処理では 5GB/s 以上を目指す。 - 耐久性
10,000 サイクル以上の耐久性を持つ SSD を推奨。 - バックアップ
Bind Mount を利用する場合は、ホスト側のバックアップツールで定期的にコピー。 - セキュリティ
NFS/CIFS で共有する場合は、暗号化とアクセス制御を必ず設定。 - 温度管理
高速 I/O では熱が上がるため、ケースにファンを追加。 - 電源管理
tmpfs を使用する際は、電源オフ時にデータが失われる点を留意。 - Kubernetes 連携
CSI プラグインを導入する場合は、Kubernetes のバージョンが 1.28 以上であることを確認。 - ドライバ互換性
Docker Engine 20.10 以降は CSI 1.5 との互換性が保証される。 - コスト
256GB NVMe SSD で 1TB 以上の容量を確保する場合、¥30,000 以上になるケースが多い。
関連用語との違い
- Docker Volume vs. Bind Mount
Volume は Docker が管理する抽象化レイヤーで、ホストパスを隠蔽。
Bind Mount はホストパスを直接指定し、開発時に便利。 - Docker Volume vs. tmpfs
tmpfs はメモリ上に存在し、速度は高いが永続性はない。 - Docker Volume vs. CSI
CSI は Kubernetes で使用されるコンテナストレージインターフェース。
Docker だけでなく、Kubernetes でも同じ Volume を共有できる。
よくある質問
Q1. Docker Volume と NFS の違いは何ですか?
A1. Docker Volume はローカルストレージを抽象化し、NFS はネットワーク越しに共有するファイルシステム。速度はローカルの方が速い。
Q2. tmpfs を使うとデータは失われますか?
A2. はい。tmpfs はメモリ上に存在するため、電源オフや再起動でデータは消失します。
Q3. CSI プラグインを使うメリットは?
A3. Kubernetes と Docker の両方で同一の Volume を利用でき、スケーラビリティと可搬性が向上します。
まとめ
Docker Volume はコンテナの永続化を実現するための基本的な仕組みで、Named Volume、Bind Mount、tmpfs、NFS、CSI など多様な実装が存在する。
2026年に進化した CSI 1.5 は Kubernetes PersistentVolume と統合され、次世代のクラウド原生アプリケーションに不可欠となる。
自作PC で構築する際は、容量・性能・耐久性・セキュリティを総合的に評価し、目的に合った Volume タイプを選択することが重要である。