[Docker]フォルダ共有について

2016-12-01


流行りにのって(≠遅れて)Dockerを少しばかり触ってみました。

実は以前も触ったことがあったのですが、どうも、大本のOSからコンテナへのファイル共有のところでつまづきまして・・・今回のお勉強でそのあたりが解決しましたので投稿します。

まず、Dockerの構成!これを念頭に調査しなかったので、問題の解決に労力が必要になりました・・・ちなみにDocker ToolboxとWinの場合です。Docker for windowsというのがあるらしいんですが、要件が足らず!

  • 大本のOS・・・WinなりMacなり、お好きなもの。試したのはWindowsです。
    • VirtualBoxの仮想OS・・・Dockerのコンテナを動かすための土台。”いい環境”を使っていればいらないとか???
      • コンテナ・・・phpとかmysqlとか。

共有にあたり、よくGoogle先生に教えてもらえるのが「dockerのvolumesで設定すればOK」というもの。ですが、試した環境ではどうやっても同期できず。↑でいうところの大本のOS内を全検索しても、共有したはずのフォルダが見つからない。にもかかわらず永続化はできてる。という症状でした。

そこで↑の構成に思い至り、VirtualBoxを調べてみたところ、しっかり保存されていることを発見。volumesの指定はコンテナ-VirtualBox間の共有設定になるんですね。当たり前、そう当たり前!

↑の3要素のうち、下2つはつながりました。残るは上2つ。これはVirtualBoxについて調べればOK。どうやら「共有フォルダ」という機能で実現できるそう。GUIからポチポチするだけでいけました。

ここでもうひと悶着。GUIからだけでは共有できないんですね。ちゃんとマウントしてやらないと。Google先生にvirtualbox vboxsfくらいで聞いてみてください。で、マウントできれば、無事↑の3要素でデータ共有できました。やった。

Dockerでのフォルダ共有の件、volumesに書けば、volumesに書けば、とばかりGoogle先生はおっしゃり、なかなかVirtualBoxで共有フォルダの設定が必要なことを述べている情報が見当たりませんでした・・・わかれば簡単な話ですし、簡単な話なので省略されてしまっているのかもしれませんが、そんなことにも気づかない迂闊な人(自分)にどうぞ!

===

余談というか、できてしまったので調べてないのですが、virtualboxのvboxsf。つまり、これはfstabみたいなものという理解でいいのでしょうか?GUIからのポチポチは、このvboxsfにfstabのレコードを足すことに相当し、fstab書いただけでは、そりゃマウントできない、マウントコマンドを叩いて繋がったね、ということでしょうか?

そういえば、確か、通常(fstab)の場合も設定がないと(autoでしたっけ?)再起動後はマウントが切れちゃうんですよね。vboxsfもそうなのかな?まだまだ課題はありそうです。