🔸 要点まとめ

Dockerでは、コンテナ内部のデータは**デフォルトでは揮発性(消える)**です。

そのため、ストレージ(特にボリュームやバインドマウント)を適切に扱うことが、アプリケーションの永続性と保守性を支える基盤になります。


🔸 1. なぜDockerにストレージが必要か?

コンテナは軽量で一時的なプロセス空間です。

以下の例のように、デフォルトではコンテナを停止/削除するとデータも一緒に消える仕様です。

# /data にファイルを保存しても、コンテナ削除で消える
docker run -it ubuntu
> echo "hello" > /data/test.txt
> exit
docker ps -a  # コンテナ削除
docker rm [コンテナID]

📌 ポイント:


🔸 2. ストレージが必要なユースケース

ストレージを必要とする代表的なケースは以下の通りです。

ユースケース 解説
DBのデータ保存 MySQL/PostgreSQLのデータファイルを永続化
ファイルのアップロード Webアプリからアップされた画像などを保存
設定ファイルの共有 開発環境でホストの設定ファイルを反映
ログ保存 ログデータをホストに書き出すことで可視化・収集

例:MySQLコンテナのデータが消えてしまう場合

docker run -d --name mysql -e MYSQL_ROOT_PASSWORD=pass mysql
# 一見起動するが、コンテナ削除時にDBごと消える
docker rm -f mysql

これを防ぐには、後述する「ボリューム」や「バインドマウント」を使う。


🔸 3. ストレージ方式の分類と特徴