このページで解説している内容は、以下の 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/htdocs
volume1
→ ボリューム名/usr/local/apache2/htdocs
→ コンテナ内のマウント先
4.手順

STEP1:ボリュームを作成
まずは volume1
という名前のボリュームを作ります。
docker volume create volume1
Docker 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 のデータ管理がより柔軟になっていきます。