こんにちは。Windows 10 Home EditionでDockerを使っている方の多くは、Docker toolboxを利用していると思います。今回は、このDocker tool box上で動作させているコンテナとホストPC(Windows10)の間でファイル共有する方法をご紹介します。
前提
ファイル共有の具体的な方法をご説明する前にDocker toolboxの構造を理解しましょう。下図の通りDocker toolboxはたくさんの構成でできています。
基本的に仮想サーバ(default)の上でコンテナがたくさん動作しているイメージとなります。
今回は、一番の上のコンテナと一番下のWindows10でファイル共有を行います。大変そうですが、一段階ずつファイルを共有すれば簡単です。
階層が多くてファイル共有は大変そうだけど実は簡単なんだ!!
Virtual boxのファイル共有設定を変更
まずはVitrtul boxのファイル共有設定を変更します。
Virtul boxを開きます。そして、仮想サーバ "default"の設定を開きます。
一番の下の共有フォルダを選択します。
共有フォルダをクリックするとポップアップが出力します。
ここファルダを共有したいWindows10側のフォルダのパスにします。ファルダー名は任意でだ丈夫です。今回はUsersとしています。フォルダー名は後から使うので控えておきましょう。
OKをクリックします。
仮想サーバ(defult)側の設定
Docker Quickstart Terminalを起動します。
しばらくするとクジラさんが登場です。
そのあとに以下のコマンドを発行です。
(1) 仮想サーバに共有フォルダマウントディレクトリ作成
docker-machine ssh default 'sudo mkdir -p /ディレクトリ名
(2) 仮想サーバに共有フォルダマウント
$ docker-machine ssh default 'sudo mount -t vboxsf -o uid=0,gid=0 共有フォルダ名 /ディレクトリ名'
共有フォルダ名は先ほどVirtual boxで設定した共有フォルダ名です。
コンテナ起動用yml設定
みんな大好きなymlファイルのVolume設定を以下の通りにします。
volumes: # データの格納場所
- /ディレクトリ名:コンテナのディレクトリ名
(例) - /users:/home/redmine/data
これでコンテナ内のディレクトリとWindows10のフォルダを共有できます。実際に共有フォルダを使用する際はexecコマンドでコンテナにログインする必要があります。