何故増やすのか
centos7のdockerはデフォルトでdevice mapperで動いているが、こいつがコンテナにデフォルトで割り当てるディスクサイズが10GBのため
環境
# cat /etc/redhat-release
CentOS Linux release 7.6.1810 (Core)
方法
前提
まず大前提としてdocker daemonを停止した上で/var/lib/docker
を削除する
コンテナやイメージが全て消えるので必要な場合はバックアップなどを取ること
なお、データをマウントしていたりする場合は当然そのデータは消えない
設定
筆者はsystemctlでdockerを起動しているため/lib/systemd/system/docker.service
に設定を記述した
dockerdを直接叩いている場合でも結局同じオプションになるはず
ExecStart=/usr/bin/dockerd -H fd:// -s devicemapper --storage-opt dm.basesize=20G
あとはsystemctlのreloadとstartでok
大事なのは-s devicemapper
と --storage-opt dm.basesize=20G
の2つである
--storage-opt dm.basesize=20G
こいつが本体
割り当てたいディスクのサイズにしてもらえれば良い ただしグローバル設定なのですべてのコンテナがこのサイズになる
-s devicemapper
ハマりポイント
storage-opt dm.basesizeだけを設定するとなぜかoverlayfsが反応してエラーを出して動かなくなるので明示的にdevicemapperを使うことを知らせる
挙動があからさまにバグである