この投稿は古い内容です。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を指定してあげると良いようです。
これは便利。