Edited at

Docker MachineでDドライブなどUsers以外を自動マウントする

More than 3 years have passed since last update.

一回忘れたのでメモ。

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に以下のように書く。


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に書かれている。