mecobalamin’s diary

人間万事塞翁が馬

https://help.hatenablog.com/entry/developer-option

WSLで動くDockerのストレージサイズを変える

WSLで動くDockerでTrinityを動かしたい
Trinityについては過去記事を参照
mecobalamin.hatenablog.com

Ubuntuのイメージを実行して
足りないコマンドをインストールして
Trinityを動かせたがストレージサイズが足りなくて途中で止まった

そこでWSLで動くDockerのストレージサイズを変更する
実際にはストレージサイズの大きなVirtual Machineを新しく作った
Docker tool boxを利用してWSLでDockerを使えるようにした
mecobalamin.hatenablog.com]
Docker tool boxをインストールすると
ストレージサイズが20GBのVirtual Machineが作られる
このストレージのサイズを変更できないか調べてみたが
どうもできないらしい
自動で作られるストレージの実体は
VMDKという拡張子のつくファイルで
この種類の仮想ハードディスクはサイズの変更ができない

そこでWSLからDocker-machine.exeを使って
ストレージサイズの大きなVirtual Machineを作成する

virtual machineを停止した状態で
以下のコマンドをWSLで実行する

docker-machine.exe create --driver virtualbox --virtualbox-disk-size "120000" --virtualbox-memory "16384" ubuntu

virtualbox-disk-sizeで仮想ハードディスクのサイズ
virtualbox-memoryでVirtual Machineのメモリのサイズを指定する
最後のubuntuは新しいvirtual machineの名前になる

ちなみにvirtual machineの停止は

docker-machine.exe stop

virtual machineが作成されたら
docker-machine.exe configを使って
ホストのアドレスと
ファイルのあるディレクトリを
$HOME/.profileに記入する

作成したvirtual machineのubuntuが動いているときに
docker-machine.exe configを実行すると
以下のパラメータが表示される

$ docker-machine.exe config ubuntu
--tlsverify
--tlscacert="C:\\Users\\hogehoge\\.docker\\machine\\machines\\ubuntu\\ca.pem"
--tlscert="C:\\Users\\hogehoge\\.docker\\machine\\machines\\ubuntu\\cert.pem"
--tlskey="C:\\Users\\hogehoge\\.docker\\machine\\machines\\ubuntu\\key.pem"
-H=tcp://192.168.99.104:2376

hogehogeはwindowsにログインしているユーザー名

このうち

C:\\Users~\\ubuntu

tcp://192.168.99.104:2376

を$HOME/.profileに記入する

export DOCKER_HOST="tcp://192.168.99.104:2376"
export DOCKER_CERT_PATH=/c/Users/hogehoge/.docker/machine/machines/ubuntu/
export DOCKER_TLS_VERIFY=1

記入が終わったら

$ source ~/.profile

を実行して読み直す

これでvirtual machineを実行できる

$ docker-machine.exe start ubuntu

virtual machineの名前は必要
つけないとdefaultのvirtual machineが実行される

いまのところ新しく作ったviertual machineは
docker-machine.exe envとdocker-machine.exe activeでは
確認できていない

このvirtual machineに
ubuntuのimageをダウンロードするなり
これまで作ったimageをloadするなりして
環境をつくれる