
【Docker基礎】記憶領域のマウントの種類
Docker を使ってコンテナを運用する際、どこにデータを保存しておくかは重要なテーマです。コンテナが壊れたり再作成されてもデータを残したい、あるいはコンテナの外部で自由にファイルを編集したい。そんなニーズに対応するために、ボリュームマウントとバインドマウントという2種類のマウント方法が用意されています。
ここでは、それぞれのマウント方式がどんな特徴を持ち、どう使い分ければいいのかを解説します。

ボリュームマウントとは?
- Docker Engine が管理する“ボリューム” をコンテナにマウント
- ボリュームは 名前 だけで管理でき、OS に依存しない。
- Docker コンテナからデータを書き込むことは容易だが、ホスト側からは直接触りにくい。
- 複雑な手順なく編集できない 代わりに、誤操作や環境差異の影響を受けにくい。
ボリュームマウントのメリット
- 環境に依存しない
・Windows でも Mac でも Linux でも、Docker が抽象化して管理 - 誤って削除しにくい
・ホストのディレクトリをいじらずに済むので、安全性が高い。 - Docker 社の推奨方式
・手軽かつ OS 差異を気にせず使える。
ボリュームマウントのデメリット
- ホスト側からファイルを直接編集しづらい
・WordPress のテーマ編集など、頻繁にファイルをいじりたいケースには不向き - バックアップが複雑
・ボリュームの内容をコピー・移行するときにやや特殊な手順が必要
バインドマウントとは?
- Docker Engine の管理下ではないホスト上のフォルダやファイル をコンテナにマウント
- 既存フォルダ・ファイルをそのままコンテナ内に見せる
- ホストのディレクトリを自由に操作できるので、エディタで直接編集するのが簡単
バインドマウントのメリット
- 普通のファイル扱い
・例えばC:\Users\Document
や/Users/<name>/Documents
にあるファイルを直接編集可 - 頻繁に触るデータに最適
・WordPress のテーマやソースコードなど、編集が多いファイルを置くのに便利
バインドマウントのデメリット
- 環境依存が生じやすい
・Windows / Mac / Linux でパス記法が違う。
・チームメンバー間での使いまわしに注意 - 誤って削除しやすい
・ホスト上でいつものフォルダ扱いになるので、気づかず消してしまう可能性あり
ボリュームマウントとバインドマウントの違い
項目 | ボリュームマウント | バインドマウント |
---|---|---|
記憶領域 | ボリューム(Docker管理下) | ディレクトリやファイル(ホスト任意) |
マウント場所 | Docker Engine 管理下の専用領域 | どこのフォルダ/ファイルでも可能 |
マウント時の動作 | ボリュームを作成 → マウント | 既存のディレクトリ/ファイルをマウント |
内容の編集 | コンテナを経由する形が基本 | 普通のファイル として自由に扱える |
バックアップ | 手順がやや複雑 | 普通のファイルコピーで済む |
OS依存 | ほぼなし(抽象化される) | あり(Windows, Mac, Linux でパスが異なる) |
tmpfs マウント(おまけ)
- メモリ上にマウントする特別な方式
- ディスクより高速だが、ホスト再起動やコンテナ停止で消える
- キャッシュや一時ファイルなどの短命データ向け
まとめ
- ボリュームマウント → Docker がまとめて管理する領域を割り当てる。
・環境差異に左右されにくく、誤って削除しにくい。
・ただしホストからは直接編集しづらい。 - バインドマウント → ホストの好きなフォルダ/ファイルをコンテナに見せる。
・いつものファイルのように簡単に編集可能
・ただし OS の違いが大きく影響し、誤操作リスクもある。
利用シーンに応じて、“手軽さ” と “自由度” をどの程度求めるのかを考え、ボリュームマウントとバインドマウントを使い分けましょう。次のコンテンツでは、それぞれのマウント方法をコマンド例と共に解説し、実際にどのように指定すればいいかを見ていきます。