コーヒー飲みながら仕事したい

仕事で使う技術的なことの備忘録とか

Docker でホストマシンのストレージ移動と共有フォルダのマウント

Docker ホストマシンのストレージを移動する

イメージを入れる前に、Docker ToolBox を使用している場合は、C:\Users\<ユーザー名>\.docker\machine\machines\<マシン名>に仮想ディスクファイル (.vmdk) が作られるらしい。
私の環境ではCドライブが切迫しているので、取り急ぎDドライブに移動する。

基本的に↓参照でおk。
(注意:VirtualBox立ち上げっぱなしで.vboxファイル編集してもダメ。.vboxファイルは仮想マシン起動時ではなく、VirtualBox本体を立ち上げるときに読み込まれるらしい。

takaya030.hatenablog.com

データを永続化するために、ストレージを共有フォルダ化する

dockerコンテナは、そのままではデータを永続的に保持できないらしい。そのため、共有フォルダを使用して、データ永続化を実現する必要がある。

ぱっと調べた感じ、参考になるのはあったが、Windows野郎の私にとってはsshの手順とかも慣れていないのですんなりいかなかった。ので、備忘録として手順等を残しておく。

1. VirtualBoxに共有フォルダ設定する

とりあえずここではD:\docker\workを共有フォルダにしてみた。 f:id:tassi-yuzukko:20180303232030j:plain f:id:tassi-yuzukko:20180303232036j:plain f:id:tassi-yuzukko:20180303232040j:plain

2. 起動時設定ファイルを作る

Docker Machineの起動時に、共有フォルダが自動でマウントされるように設定ファイルと作る。

  1. docker-machine ssh実行
    • power shell で実行すると文字化けするので、git bash でやった方が良いかも
  2. /var/lib/boot2docker/bootlocal.shに以下のように書いて保存する
    • bash で操作するから、たぶん vi 使わないといけないんだけど、sudo vi /var/lib/boot2docker/bootlocal.shてな感じで sudo が必要
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 run -it -v /work:/XXX <コンテナ名>:<タグ> で、上述した work のシンボリックリンクの共有フォルダが、 コンテナ上に XXX フォルダとしてマウントされる。

うーん、ややこしいなぁ。