Posted at
DiverseDay 16

Dockerのルートディスクサイズを増やし方

More than 3 years have passed since last update.


スペック

docker v1.3.3

centos6.5


なぜ増やした

初期設定の10GBだと足りなくなってしまったので増やすことにしました。

ちなみに

# cat /var/lib/docker/devicemapper/metadata/

{"device_id":0,"size":10737418240,"transaction_id":1,"initialized":true}

これで確認できるかと思います。


どうやって増やす

Dockerでルートディスクサイズを調整する

こちらを参考にさせていただいたところ

/etc/sysconfig/docker-storageを用意して「DOCKER_STORAGE_OPTIONS=" --storage-opt dm.basesize=40G" 」を追加してあげればいいのかと思って

# service docker stop

# rm -rf /var/lib/docekr
/etc/sysconfig/docker-storage # 追加
# service docker start

このように対応しましたが

# cat /var/lib/docker/devicemapper/metadata/base

{"device_id":0,"size":10737418240,"transaction_id":1,"initialized":true}

と増えませんでした。


少し違っていた

https://github.com/docker/docker/tree/ec1002db58e8f84fc6d8306a3dd580e5fa88872c/contrib/init/sysvinit-redhat

Dockerを使用しているサーバーには上記のURLからinitを持ってきてdockerはgithubにあるバイナリを使ってました。

initのdockerの方を見てみると

# Description: Daemon for docker.com

### END INIT INFO

# Source function library.
. /etc/rc.d/init.d/functions

prog="docker"
exec="/usr/bin/$prog"
pidfile="/var/run/$prog.pid"
lockfile="/var/lock/subsys/$prog"
logfile="/var/log/$prog"

[ -e /etc/sysconfig/$prog ] && . /etc/sysconfig/$prog

prestart() {

一部抜粋ですが、/etc/sysconfig/$progと/etc/sysconfig/dockerのみ叩いていました。

ですので、/etc/sys/config/docker-storageでなくて/etc/sysconfig/dockerを変更するようにしました。


before

# /etc/sysconfig/docker

#
# Other arguments to pass to the docker daemon process
# These will be parsed by the sysv initscript and appended
# to the arguments list passed to docker daemon

other_args=""


after

# /etc/sysconfig/docker

#
# Other arguments to pass to the docker daemon process
# These will be parsed by the sysv initscript and appended
# to the arguments list passed to docker -d

other_args=" --storage-opt dm.basesize=40G"

と変えてあげて先ほどの手順を行ったところ

# cat /var/lib/docker/devicemapper/metadata/base

{"device_id":0,"size":42949672960,"transaction_id":1,"initialized":true}

増やすことに成功しました。


終わり

今回調べてみたらほとんど/etc/sysconfig/docker-storageに「DOCKER_STORAGE_OPTIONS=" --storage-opt dm.basesize=40G"」を記載してあげればいいとの事だったのでv1.3.3より大きいDockerならばこのお方法は必要ないかと思います。