Docker machine のメモリを増やす方法

More than 3 years have passed since last update.

こんにちはみなさん

今回はしょうもないことでふらふらと調べまわった挙句、

それほど困るものでもなかった問題に遭遇したので、

とりあえず備忘録として挙げたものです


Docker Toolbox

今回はいろいろ面倒になったので、Docker Toolboxでdocker環境をオールインワンで突っ込んでいます

https://www.docker.com/products/docker-toolbox

Docker Toolbox は docker を動かすために十分な環境を用意するためのインストーラです。

これを使用すると、windowsだろうがmacだろうが、ネイティブのコマンドライン上でdockerコマンドを使えるようになります

一昔前のboot2dockerですな

インストールが完了すると「Docker Quickstart Terminal」というアイコンが出てきて、これを起動すると、dockerを動かすための環境をセットアップして、動作環境を整備した状態にしてくれます

WS000000.JPG


Docker Machine

Docker Toolbox の肝はDocker Machine を起動させて、windows や mac でdockerコマンドを使えるようにするということです。

で、Docker Machineというのは、Dockerを使えるようにするための仮想環境を立ち上げ、その環境を通してdockerを使えるようにするものです。

この際立ち上がっている仮想マシンは boot2docker というdocker を動かすためのディストリビューションだそうです

「Docker Quickstart Terminal」で起動したターミナル上では、起動したDocker Machineの作成時の状態を以下のコマンドで確認できます

docker-machine inspect

ここでMemory のサイズを見ると、

"Memory": 1024,

で、普通だったらこれでも十分なのですが、

機械学習のようなメモリをバカ食いするような処理では、

静かにkill される可能性があります


メモリを増やす

docker コンテナに任意のメモリを割り当てる方法は、runするときに以下のオプションをつければいいです

docker run -m 1024m hoge /bin/bash

しかし、コンテナに割り当てるメモリを増やすには、そもそも仮想マシンに割り当てたメモリを増やす必要があります

で、メモリの増やし方なのですが、とても原始的な手段に走りました

docker-machineが使用している仮想環境は、VirturalBox 上に存在します

というわけで、まずいったんマシンを止めます

docker-machine stop

次にVirturalBoxの管理画面を開きます

今まで入れたことがなくても、Docker Toolbox 入れたら勝手に入っています

WS000001.JPG

すると、「default」という名前の仮想イメージがあるので、こいつを選択した状態で設定アイコンを押してやります

WS000002.JPG

設定画面でシステムを選択し、メモリスライダを好きなように動かしてやり、OKを押します

以上で設定が終わったので、起動します

私は不安だったので、再度「Docker Quickstart Terminal」起動させました


確認する

最後に確認しましょう

ターミナルの軌道が完了したら、適当なコンテナに任意のメモリをくっつけて起動させてみます

docker run -it --rm -m 8g hoge /bin/bash

で、freeで確認すると

root@82880b1c54d8:/# free

total used free shared buffers cached
Mem: 8168428 220220 7948208 132696 8796 137844
-/+ buffers/cache: 73580 8094848
Swap: 2986560 0 2986560

こんな感じでメモリが8GBに増やせました


まとめ

気が付いたら、ただの VirturalBox のメモリ割り当ての解説になっていたでござるの巻

Docker Toolboxがどういう設定しているかはわかりにくいけど、やっていることは仮想マシン動かして、

そのうえでDocker動かしているだけなんで、それほどブラックボックスな感じはせんですな


参考

https://docs.docker.com/machine/overview/

http://qiita.com/spesnova/items/073dd64a8a1d580d9ae9