2026年7月18日

2026年7月18日

Dockerのバインドマウントでローカルファイルを使う方法

はじめに

Dockerはアプリケーションのデプロイと管理を容易にするためのツールとして広く使用されています。しかし、開発や運用においてしばしば必要になるのがローカルファイルの共有です。この記事では、Dockerのバインドマウント機能を使って、ローカルのファイルをコンテナ内で利用する方法について解説します。

症状・背景

  • ローカルで開発したコードや設定ファイルを直接コンテナ内に反映したい
  • サーバー側で実行中のサービスを停止せずに、ローカルの更新を適用したい
  • ローカルのデータベースバックアップを直近の状態で維持したい

手順・設定方法

ステップ1: バインドマウントの基本操作

# Dockerfileやコンテナ起動時に使用します。
docker run -v /host/path:/container/path image_name
  • /host/path: ローカルファイルシステム上のパス
  • /container/path: コンテナ内のマウントポイント
# 例: WordPressテーマのローカルファイルをコンテナ内に反映する
docker run -v /path/to/local/theme:/var/www/html/wp-content/themes/mytheme image_name

ステップ2: 主要オプション/設定

# バインドマウントは、-v オプションを使って指定します。
docker run -d --name my_wordpress_container -p 8000:80 -v /path/to/local/data:/var/www/html -v /path/to/local/config:/etc/apache2/apache2.conf image_name
  • -p オプションでホストとコンテナのポートをマッピングします。
  • /path/to/local/data: ローカルデータベースファイルや設定ファイルを格納するディレクトリ

ステップ3: 应用/組み合わせ

# Docker Composeを使用して複数のコンテナ間でファイル共有を行う
version: '3'
services:
  wordpress:
    image: wordpress
    ports:
      - "8000:80"
    volumes:
      - /path/to/local/data:/var/www/html
      - /path/to/local/config:/etc/apache2/apache2.conf

ステップ4: 実践/トラブルシュート/監視

# コンテナ内でのファイル操作を確認します。
docker exec my_wordpress_container ls /var/www/html
  • ファイルが正しくバインドマウントされたことを確認できます。

注意事項

  • バインドマウントは読み書きアクセスが必要なため、セキュリティ上注意が必要です。
  • 大量のファイルを大量に共有する場合はパフォーマンスへの影響を考慮してください。
  • ローカルとコンテナ間でタイムスタンプが異なる場合があるため、更新時間の確認は推奨します。

まとめ

1. バインドマウントの基本: ローカルファイルを直ちに反映したいときや開発環境を効率化するために有用です。

2. 主要オプションの設定: -v オプションを使うことで、データベースや設定ファイルなどの重要データを管理できます。

3. 応用と組み合わせ: Docker Composeを使って複数コンテナ間で共有したり、複雑な環境構築を行ったりすることができます。

4. 実践的な注意点: セキュリティとパフォーマンスの観点から適切に設定することが重要です。

5. 監視とトラブルシュート: コンテナ内のファイル操作を確認し、問題が発生した場合は迅速に対応します。

関連記事:

お気軽にご相談ください

お見積りへ お問い合わせへ