22
21

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

boot2docker + vboxfs な環境を用意したい(Macで)

Last updated at Posted at 2014-06-30

tl;dr

の通り、boot2dockerが公式にMacのファイル共有に対応したのでそちらをお試しください。


昔はこれでドヤ顔できた

$ brew install boot2docker
$ curl -L http://static.dockerfiles.io/boot2docker-v1.0.1-virtualbox-guest-additions-v4.3.12.iso > ~/.boot2docker/boot2docker-vboxfs.iso
$ boot2docker --vm=boot2docker-vm-vboxfs --iso=~/.boot2docker/boot2docker-vboxfs.iso init
$ alias boot2docker='boot2docker --vm=boot2docker-vm-vboxfs'
$ boot2docker up
$ export DOCKER_HOST=tcp://$(boot2docker ip 2>/dev/null):2375       
$ docker version

more...

docker クライアントと boot2docker を入れる

ホームブリューで良いと思う。

boot2docker.iso を持ってくる

boot2docker は初期化の際にベースとするisoファイルを選べるので、インターネット上にあるvboxfsが有効になったisoを持ってくる。

このisoが何者かについては https://medium.com/boot2docker-lightweight-linux-for-docker/boot2docker-together-with-virtualbox-guest-additions-da1e3ab2465c を見よ。

具体的な作り方は、 https://gist.github.com/mattes/2d0ffd027cb16571895c を参考に同じことをすれば良いらしいので、インターネットを信用しないとか、やってみたいとか、そういう場合は自分で作れば良いだろう。

init

オプションを指定。

boot2docker --vm=boot2docker-vm-vboxfs --iso=~/.boot2docker/boot2docker-vboxfs.iso init

長いのでエイリアス切る。

alias boot2docker='boot2docker --vm=boot2docker-vm-vboxfs'

あとはよくある手順

$ boot2docker up
$ export DOCKER_HOST=tcp://$(boot2docker ip 2>/dev/null):2375       
$ docker version

Mac → VBox のフォルダ共有

#!/bin/bash
VM_NAME=boot2docker-vm-vboxfs
WORKSPACE=`pwd`

VBoxManage sharedfolder \
  add "$VM_NAME" \
  --name $( basename $WORKSPACE ) \
  --hostpath $WORKSPACE \
  --transient

boot2docker --vm=$VM_NAME ssh \
  "sudo modprobe vboxsf && sudo mkdir -p $WORKSPACE && sudo mount -t vboxsf $( basename $WORKSPACE ) $WORKSPACE"

こういう感じのスクリプトを書いておいたら捗ると思う。

--transient オプションなので boot2docker restart とかすればマウントも解除される。

同じ名前で共有してるのは、まあ、ややこしくなくていいかなと思ったからです。

シェアさせていただきます

上述の手順で共有設定のあとは、

docker run -d -p 22 -v ${WORKSPACE-`pwd`}:/path/to/share $IMAGE_NAME /bin/echo hello

こんな感じでプロジェクトのルートとコンテナでディレクトリ共有が可能になる。

Mac の /Users/udzura/hogehoge-puppet
↓
boot2dockerインスタンス の /Users/udzura/hogehoge-puppet
↓
コンテナの /path/to/share

という感じ(puppetなのはイメージです)。まあ、ファイル共有(-vオプション)さえちゃんと動けば、ローカルMacでのドッカーデヴェロップメントもそれなりに捗るんじゃないでしょうか。

22
21
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
22
21

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?