Help us understand the problem. What is going on with this article?

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

niisan-tokyo
流行りに微妙に遅れてついていく、エンジニア9年生です。
roxx
人材紹介業むけプラットフォーム「agent bank」、リファレンスチェックサービス「back check」を運営。
https://roxx.co.jp
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした