Day6:データ永続化(ボリューム)前半
テーマ:コンテナを消してもデータが残る“ボリューム”の本質を理解する
Day6 の前半では、Docker の中でも実務で最重要の概念
「データ永続化(ボリューム)」
を、初心者でも直感で理解できるように解説します。
今日のゴールは、
コンテナを削除してもデータが消えない仕組みを理解し、自分で使えるようになること
です。
ボリュームとは何か
コンテナの外に“データ専用の保存場所”を作る仕組み
Docker コンテナは本来、使い捨てです。
- コンテナを削除すると
- 中のファイルも全部消える
これはアプリのコードなら問題ありませんが、
データベースのデータが消えるのは致命的 です。
そこで登場するのが ボリューム(volume)。
ボリュームは、
コンテナの外側にある、データ専用の安全な保存場所
だと思ってください。
docker volume create mydata の意味
docker volume create mydata
これは次の動作をしています。
- Docker に「mydata」という名前のデータ保存領域を作る
- コンテナとは独立した“外付けハードディスク”のようなもの
つまり、
コンテナを消しても、この mydata は残り続ける
ということです。
ボリュームを使うと何が嬉しいのか
コンテナを削除してもデータが残る
例:MySQL コンテナを削除しても、
ユーザー情報・商品データ・ログなどは消えません。
コンテナを作り直しても同じデータを使える
アプリのバージョンアップや再構築が簡単になります。
チーム全員が同じデータ構造を再現できる
実務では「環境の再現性」が非常に重要です。
ボリュームを使った具体例(MySQL)
ボリュームを MySQL に紐づける
docker run -d \
--name mydb \
-v mydata:/var/lib/mysql \
mysql:8
ここで重要なのは /var/lib/mysql です。
これは MySQL のデータファイルが保存される場所。
つまり:
- MySQL のデータ → mydata(ボリューム)に保存
- コンテナを削除しても mydata は残る
- 新しい MySQL コンテナを作っても mydata を再利用できる
これが データ永続化の本質 です。
ボリュームの動作を“目で見て理解する”例
Step1:ボリュームを作る
docker volume create mydata
Step2:MySQL コンテナを起動
docker run -d --name mydb -v mydata:/var/lib/mysql mysql:8
Step3:データを入れる
例:ユーザーを1件追加したとします。
Step4:コンテナを削除
docker rm -f mydb
Step5:新しいコンテナを作る
docker run -d --name mydb2 -v mydata:/var/lib/mysql mysql:8
結果
データはそのまま残っている。
これがボリュームの力です。
前半まとめ
あなたがここまで理解できていれば、Day6 前半はクリアです。
- ボリュームは「コンテナの外にあるデータ保存領域」
- コンテナを削除してもデータが消えない
docker volume create mydataは“外付けハードディスク”を作るイメージ- MySQL のようなデータベースでは必須
- ボリュームを使うと環境の再現性が高まる
