Docker | 2週間で実務レベルに到達するDocker学習:データ永続化(ボリューム) - Day6

Docker Docker
スポンサーリンク

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 のようなデータベースでは必須
  • ボリュームを使うと環境の再現性が高まる
タイトルとURLをコピーしました