【docker】ホストとコンテナ間でファイルを共有する方法

ローカルで作成したファイルをdockerのコンテナ内で使用できるようにする方法について説明します。
もくじ
①root権限でマウント
hostのフォルダとコンテナのフォルダをルート権限でマウントする
方法:マウントする(root権限)
hostのフォルダとコンテナのフォルダをルート権限でマウントする
マウントすることで、host側でファイルを作成や編集したファイルをコンテナの内でも参照、編集が可能になります。
ソースコードなどをファイルを共有する場合に便利です。
コマンド:run -v ホストフォルダパス:コンテナフォルダパス
以下のコマンドを入力することでフォルダを共有できます。
docker run -it -v /mnt/c/docker/host_folder:/cont_dir image bash-v /mnt/c/docker/host_folder:/cont_dir
| -v | マウントを指定するオプション |
| /mnt/c/docker/host_folder | ホスト側のフォルダパス |
| /cont_dir | コンテナ側フォルダパス |
②ユーザ権限でマウント
hostのフォルダとコンテナのフォルダをユーザ権限でマウントする
方法:マウントする(ユーザ権限)
hostのフォルダとコンテナのフォルダをユーザ権限でマウントする
マウントすることで、host側でファイルを作成や編集したファイルをコンテナの内でも参照、編集が可能になります。
マウントするときにユーザを指定して、編集者をユーザで可能にする。
ソースコードなどをファイルを共有する場合に便利です。
コマンド:run -v ホストフォルダパス:コンテナフォルダパス -u ユーザ:グループ
以下のコマンドを入力することでフォルダを共有できます。
docker run -it -v /mnt/c/docker/host_folder:/cont_dir -u $(id -u):$(id -g) image bash-v /mnt/c/docker/host_folder:/cont_dir
| -v | マウントを指定するオプション |
| /mnt/c/docker/host_folder | ホスト側のフォルダパス |
| /cont_dir | コンテナ側フォルダパス |
-u $(id -u):$(id -g)
| -u | ユーザを指定するオプション |
| $(id -u) | コマンドを実行するユーザID |
| $(id -g) | コマンドを実行するユーザのグループID |

