17
Help us understand the problem. What are the problem?

More than 5 years have passed since last update.

posted at

updated at

Organization

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

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

これは便利。

Register as a new user and use Qiita more conveniently

  1. You can follow users and tags
  2. you can stock useful information
  3. You can make editorial suggestions for articles
What you can do with signing up
17
Help us understand the problem. What are the problem?