一回忘れたのでメモ。
Docker Machineはboot2docker.iso
から起動するので、docker-machine ssh
して中のファイルを弄ろうとしてもMachineを再起動すると消えてしまう。
しかしホストのdisk.vmdk
が/mnt/sda1
にマウントされており、その内部は保存される。
そして/var/lib/boot2docker/
は/mnt/sda1/var/lib/boot2docker/
へのシンボリックリンクで、その中にbootlocal.sh
を置くとDocker Machineの起動時、初期化の最後に実行してくれる。
つまりどうするの
VirtualBoxのdefaultマシンの共有フォルダ設定でD:\Hoge
などをd/Hoge
などとして追加した上でdocker-machine ssh
して/var/lib/boot2docker/bootlocal.sh
に以下のように書く。
mkdir -p /d/Hoge
mount -t vboxsf -o defaults,iocharset=utf8,uid=1000,gid=50 d/Hoge /d/Hoge
これでDocker Machineの起動時にD:\Hoge
が自動マウントされ、そこ以下ならボリュームとしてコンテナにマウントできるようになる。
試してないから勘だけど、共有フォルダ名(d/Hoge
)はたぶん何でも良いと思うけどマウント先(/d/Hoge
)のディレクトリ名はマウント元(D:\Hoge
)と合わせないといけない気がするので注意。
ちなみに、Usersをマウントする設定は/etc/rc.d/vbox
に書かれている。