
Docker超入門:コンテナにボリュームをマウントしてデータを永続化する方法
Dockerを使ってアプリケーションを動かしていると、コンテナを削除したら中のデータも消えてしまった…という経験をすることがあります。そこで登場するのが ボリュームのマウント です。ボリュームをコンテナに関連付けることで、コンテナを削除してもデータが残り、永続化や共有が可能になります。ここでは、Dockerfileに記述する方法と、docker runコマンドを使ってマウントする方法を丁寧に解説します。

Dockerfileに記述する方法
Dockerfileの中でボリュームをマウントする場合は、VOLUME命令 を使用します。
コマンド書式
VOLUME <ディレクトリ>実行例
FROM ubuntu:latest
# コンテナ内のディレクトリをボリュームとしてマーク
VOLUME /app/data
# その他の命令や設定 この例では、コンテナ内の /app/data ディレクトリがボリュームとしてマークされます。これによって、コンテナを起動する際にホストマシンのボリュームや匿名ボリュームと関連付けることができ、データの永続化が実現できます。
Dockerコマンドでボリュームをマウントする方法
Dockerコマンドを使えば、作成済みのボリュームを特定のディレクトリに直接マウントすることができます。
コマンド書式
docker run -v <ボリューム名>:<ディレクトリ名> <イメージ名>実行例
docker run -v my_volume:/app/data my_image この例では、ホスト上にある my_volume という名前のボリュームがコンテナ内の /app/data ディレクトリに関連付けられます。そのため、コンテナ内で /app/data に保存したデータはコンテナ終了後も残り、別のコンテナからも同じデータを利用できます。
主なコマンドとオプションまとめ
| コマンド/命令 | 書式 | 説明 |
|---|---|---|
| VOLUME | VOLUME <ディレクトリ> | Dockerfile内でボリュームを指定し、コンテナ内のディレクトリを永続化対象としてマークする。 |
| docker run -v | docker run -v <ボリューム名>:<ディレクトリ> <イメージ名> | 作成済みのボリュームを指定ディレクトリにマウントする。 |
まとめ
ボリュームをマウントする方法は2種類あります。
- DockerfileでVOLUME命令を使う方法:あらかじめ永続化すべきディレクトリを定義する
- docker run -vで指定する方法:実行時にボリュームをディレクトリへ関連付ける
どちらを使っても、データの永続化やコンテナ間での共有が簡単に実現できます。Dockerを本格的に活用する上で、ボリュームマウントは欠かせない基本操作といえるでしょう。
