このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。
【Docker基礎】ボリュームをマウントする方法

ボリュームをマウントする方法
コンテナと外部ストレージを接続する方法には「バインドマウント」と「ボリュームマウント」がありましたが、ここでは ボリュームマウント の具体的なやり方を体験してみましょう。
ボリュームマウントは Docker が管理する専用領域を使うため、ホストOS とコンテナのパス依存を気にせずに済むのが最大のメリットです。

1.ボリュームマウントの流れ
- ボリュームを作成
- Apache コンテナを作成・起動
- 確認(必要に応じて
volume inspectやcontainer inspectで情報をチェック)
2.作成するコンテナの情報
| 項目 | 値 |
|---|---|
| イメージ名 | httpd |
| ボリューム名 | volume1 |
| ポート番号 | 8080:80 |
3.使用するコマンドの概要
ボリューム作成
docker volume create volume1ボリューム詳細情報の表示
docker volume inspect volume1ボリューム削除
docker volume rm volume1コンテナ起動時にボリュームをマウントする (-v オプション)
-v volume1:/usr/local/apache2/htdocsvolume1→ ボリューム名/usr/local/apache2/htdocs→ コンテナ内のマウント先
4.手順

STEP1:ボリュームを作成
まずは volume1 という名前のボリュームを作ります。
docker volume create volume1Docker Engine が実際のディレクトリを割り当て、内部で管理してくれます。
STEP2:「run」コマンドで Apache コンテナを起動
httpdイメージを使って、コンテナ名apache-containerを起動し、ポートを8080:80にマッピング。-v volume1:/usr/local/apache2/htdocsで先ほど作成したボリュームvolume1を、Apache のドキュメントルート/usr/local/apache2/htdocsにマウントします。
docker run --name apache-container -d -p 8080:80 -v volume1:/usr/local/apache2/htdocs httpd--name apache-container: コンテナ名を指定-d: バックグラウンド実行-p 8080:80: ホストの 8080 → コンテナの 80 番ポート-v volume1:/usr/local/apache2/htdocs: ボリュームマウント指定
STEP3:「volume inspect」で情報を表示
docker volume inspect volume1実行結果(例)
[
{
"CreatedAt": "2025-01-05T07:14:08Z",
"Driver": "local",
"Labels": null,
"Mountpoint": "/var/lib/docker/volumes/volume1/_data",
"Name": "volume1",
"Options": null,
"Scope": "local"
}
]Mountpoint に /var/lib/docker/volumes/volume1/_data として割り当てられていることがわかります。
コンテナ側でもチェックする場合
docker container inspect apache-container実行結果(例)
...(省略)...
"Mounts": [
{
"Type": "volume",
"Name": "volume1",
"Source": "/var/lib/docker/volumes/volume1/_data",
"Destination": "/usr/local/apache2/htdocs",
"Driver": "local",
"Mode": "z",
"RW": true,
"Propagation": ""
}
],
...(省略)... 実行結果の Mounts セクションに、"Name": "volume1", "Destination": "/usr/local/apache2/htdocs" と表示されていれば OK です。
5.後始末
コンテナを停止・削除
docker stop apache-container
docker rm apache-containerボリュームを削除
docker volume rm volume1まとめ
- ボリュームを作る:
docker volume create <ボリューム名> - コンテナ起動時にボリュームをマウント:
-v <ボリューム名>:<コンテナ内パス> - 確認する:
・docker volume inspect <ボリューム名>
・docker container inspect <コンテナ名>の Mounts セクション
ボリュームマウントは、ホスト依存を気にせずデータを保管できるメリットがあります。ただし、ホストから直接ファイルを編集しにくい側面もあります。バインドマウントと併せてシーンに応じて使い分けることで、Docker のデータ管理がより柔軟になっていきます。
