Docker コンテナからホストマシンのファイルにアクセスするにはどうすればよいですか?
デフォルトでは、Dockerコンテナはホストマシンから隔離されており、ホストマシン上のファイルに直接アクセスすることはできません。ただし、次の方法でアクセスできます。
- ボリュームを使用する:ホスト上のディレクトリやファイルをコンテナにマウントして、コンテナが直接アクセスできるようにします。-v または –volume パラメータを使用して、ボリュームのマウントパスを指定します。例:
- ホストディレクトリ:/コンテナディレクトリで docker run コンテナイメージ名
- コンテナ内のパス/コンテナディレクトリがホスト側のパス/ホストディレクトリにマッピングされます。
- ホスト上のファイルパスを直接指定してボリュームを作成せずにマウントするデータボリュームに類似したバインドマウントを使用します。バインドマウントのパスを指定するには、-vまたは–volumeパラメータを使用します。たとえば
- docker run -v /ホストファイル:/コンテナファイル イメージ名
- その場合、コンテナ内パス/コンテナファイルがホストマシン上のファイル/ホストマシンファイルにマウントされます。
- 共有フォルダ(Shared Folders)を使用する: Docker Desktop(Windows および Mac 向け)を使用している場合、Dockerの設定で「共有フォルダ」機能を有効化できます。これにより、コンテナー内のファイルシステムに、ホストマシンのファイルにアクセス可能な特別な共有フォルダが自動作成されます。
なお、これらの方法はコンテナ起動時に設定を行う必要があり、すでにコンテナが稼働している場合は、作り直しやコンテナの再起動を行わないと有効にならないことに注意。