Docker ホストマシンのストレージを移動する
イメージを入れる前に、Docker ToolBox を使用している場合は、C:\Users\<ユーザー名>\.docker\machine\machines\<マシン名>
に仮想ディスクファイル (.vmdk) が作られるらしい。
私の環境ではCドライブが切迫しているので、取り急ぎDドライブに移動する。
基本的に↓参照でおk。
(注意:VirtualBox立ち上げっぱなしで.vboxファイル編集してもダメ。.vboxファイルは仮想マシン起動時ではなく、VirtualBox本体を立ち上げるときに読み込まれるらしい。)
データを永続化するために、ストレージを共有フォルダ化する
dockerコンテナは、そのままではデータを永続的に保持できないらしい。そのため、共有フォルダを使用して、データ永続化を実現する必要がある。
ぱっと調べた感じ、参考になるのはあったが、Windows野郎の私にとってはsshの手順とかも慣れていないのですんなりいかなかった。ので、備忘録として手順等を残しておく。
1. VirtualBoxに共有フォルダ設定する
とりあえずここではD:\docker\work
を共有フォルダにしてみた。
2. 起動時設定ファイルを作る
Docker Machineの起動時に、共有フォルダが自動でマウントされるように設定ファイルと作る。
docker-machine ssh
実行- power shell で実行すると文字化けするので、git bash でやった方が良いかも
/var/lib/boot2docker/bootlocal.sh
に以下のように書いて保存する- bash で操作するから、たぶん vi 使わないといけないんだけど、
sudo vi /var/lib/boot2docker/bootlocal.sh
てな感じで sudo が必要
- bash で操作するから、たぶん vi 使わないといけないんだけど、
mkdir -p /d/docker/work mount -t vboxsf -o defaults,iocharset=utf8,uid=1000,gid=50 work /d/docker/work
3. 設定を有効にする
最後にいったんdocker-machine stop default
した後に再度 docker-machine start default
で docker を再起動する。
参考
- Docker toolbox on windows マウント:Dockerコンテナの中でホストのフォルダを見たい – Qiita
- Docker MachineでDドライブなどUsers以外を自動マウントする – Qiita
共有フォルダをマウントしてコンテナを起動する
docker run -it -v /work:/XXX <コンテナ名>:<タグ>
で、上述した work のシンボリックリンクの共有フォルダが、 コンテナ上に XXX フォルダとしてマウントされる。
うーん、ややこしいなぁ。
コメント