LoginSignup
17
17

More than 5 years have passed since last update.

boot2dockerでコンテナからホストのファイルを参照する

Last updated at Posted at 2014-07-31

この投稿は古い内容です。Docker 1.3からはboot2dockerを利用していても何も考えずにホストマシンのボリュームをマウントできるようです。
boot2dockerでのVolume問題が解決しそう | SOTA

OSXやWindowsからdockerを利用する場合にはboot2dockerを利用します。しかし、boot2dockerがVirtualboxで動作する仮想マシンであるため、docker runの際、-vオプションでホストのディレクトリをマウントさせようとしても、boot2docker内のディレクトリを参照してしまうため、うまく行きません。

boot2dockerのアップデートでその辺りに対応をしたので、方法のメモ。

手順

boot2docker#folder-sharingの情報です。

どうやら、sambaサーバーとなるコンテナを動作させてsambaの共有フォルダをOSXやWindowsからマウントする方法を取るようです。

$ docker run -v /data --name my-data busybox 
$ docker run --rm -v /usr/local/bin/docker:/docker -v /var/run/docker.sock:/docker.sock svendowideit/samba my-data
$ boot2docker ip
192.168.59.103
$ docker ps
4aac758ea300        svendowideit/samba:latest   /setup.sh --start my   About an hour ago   Up About an hour    0.0.0.0:137->137/tcp, 0.0.0.0:138->138/tcp, 0.0.0.0:139->139/tcp, 0.0.0.0:445->445/tcp   samba-server         

svedowideit/sambaなるコンテナが動作していることを確認したら、OSXの場合はfinderからcifs://192.168.59.103へ、Windowsの場合はExplorerから//192.168.59.103に接続します。

/dataディレクトリをGuestでマウントします。

OSXなら/Volumes/data、Windowsなら//192.168.59.103/dataに置いたファイルを他のDockerコンテナから参照できるようになりました。

他のDockerコンテナからファイルを参照する際には、コンテナ起動時に

$ docker run --volumes-from my-data centos su -

のように--volumes-fromを指定してあげると良いようです。

これは便利。

17
17
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
17
17